module HBS2.Peer.RPC.API.LWWRef where import HBS2.Peer.Prelude import HBS2.Peer.Proto.LWWRef import HBS2.Data.Types.SignedBox import HBS2.Net.Messaging.Unix import HBS2.Net.Proto.Service import Data.ByteString.Lazy (ByteString) import Codec.Serialise data RpcLWWRefGet data RpcLWWRefUpdate data RpcLWWRefFetch type LWWRefAPI = '[ RpcLWWRefGet -- may be done via storage , RpcLWWRefUpdate -- , RpcLWWRefFetch -- ] instance HasProtocol UNIX (ServiceProto LWWRefAPI UNIX) where type instance ProtocolId (ServiceProto LWWRefAPI UNIX) = 16267229472009458342 type instance Encoded UNIX = ByteString decode = either (const Nothing) Just . deserialiseOrFail encode = serialise type instance Input RpcLWWRefGet = LWWRefKey 'HBS2Basic type instance Output RpcLWWRefGet = Maybe (LWWRef 'HBS2Basic) type instance Input RpcLWWRefFetch = LWWRefKey 'HBS2Basic type instance Output RpcLWWRefFetch = () type instance Input RpcLWWRefUpdate = SignedBox (LWWRef 'HBS2Basic) 'HBS2Basic type instance Output RpcLWWRefUpdate = ()