bcp

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2025 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Overview

Package bcp implements the Blobcache Protocol (BCP).

Index

Constants

View Source
const (
	MT_OK = 128 + iota

	MT_ERROR_TIMEOUT
	MT_ERROR_INVALID_HANDLE
	MT_ERROR_NOT_FOUND
	MT_ERROR_NO_PERMISSION
	MT_ERROR_NO_LINK
	MT_ERROR_TOO_LARGE

	MT_ERROR_UNKNOWN = 255
)

Response messages

View Source
const HeaderLen = 1 + 4

Variables

This section is empty.

Functions

func Abort

func AddFrom

func AddFrom(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID, srcTxns []blobcache.Handle, success []bool) error

func CloneVolume

func CloneVolume(ctx context.Context, tp Asker, ep blobcache.Endpoint, caller *blobcache.PeerID, volh blobcache.Handle) (*blobcache.Handle, error)

func Commit

func Commit(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, root *[]byte) error

func CreateQueue

func CreateQueue(ctx context.Context, tp Asker, ep blobcache.Endpoint, qspec blobcache.QueueSpec) (*blobcache.Handle, error)

func CreateVolume

func CreateVolume(ctx context.Context, tp Asker, ep blobcache.Endpoint, vspec blobcache.VolumeSpec) (*blobcache.Handle, error)

func Delete

func Delete(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID) error

func Drop

func Exists

func Exists(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID, dst []bool) error

func Get

func Get(ctx context.Context, tp Asker, ep blobcache.Endpoint, txh blobcache.Handle, hf blobcache.HashFunc, cid blobcache.CID, salt *blobcache.CID, buf []byte) (int, error)

func IsVisited

func IsVisited(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID, dst []bool) error

func KeepAlive

func KeepAlive(ctx context.Context, tp Asker, ep blobcache.Endpoint, hs []blobcache.Handle) error

func Load

func Load(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, dst *[]byte) error

func Ping

func Ping(ctx context.Context, tp Asker, ep blobcache.Endpoint) error

func Post

func Post(ctx context.Context, tp Asker, ep blobcache.Endpoint, txh blobcache.Handle, salt *blobcache.CID, data []byte) (blobcache.CID, error)

func Save

func Save(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, src []byte) error

func SubToVolume

func SubToVolume(ctx context.Context, tp Asker, ep blobcache.Endpoint, qh blobcache.Handle, volh blobcache.Handle) error

func TopicSend

func TopicSend(ctx context.Context, tp Teller, tmsg blobcache.Message) error

TopicSend processes a single topic messge

func Unlink(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, targets []blobcache.OID) error

func Visit

func Visit(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, cids []blobcache.CID) error
func VisitLinks(ctx context.Context, tp Asker, ep blobcache.Endpoint, tx blobcache.Handle, targets []blobcache.OID) error

Types

type AbortReq

type AbortReq struct {
	Tx blobcache.Handle
}

func (AbortReq) Marshal

func (ar AbortReq) Marshal(out []byte) []byte

func (*AbortReq) Unmarshal

func (ar *AbortReq) Unmarshal(data []byte) error

type AbortResp

type AbortResp struct{}

func (AbortResp) Marshal

func (ar AbortResp) Marshal(out []byte) []byte

func (*AbortResp) Unmarshal

func (ar *AbortResp) Unmarshal(data []byte) error

type AddFromReq

type AddFromReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
	Srcs []blobcache.Handle
}

func (AddFromReq) Marshal

func (ar AddFromReq) Marshal(out []byte) []byte

func (*AddFromReq) Unmarshal

func (ar *AddFromReq) Unmarshal(data []byte) error

type AddFromResp

type AddFromResp struct {
	Added []bool
}

func (AddFromResp) Marshal

func (ar AddFromResp) Marshal(out []byte) []byte

func (*AddFromResp) Unmarshal

func (ar *AddFromResp) Unmarshal(data []byte) error

type Asker

type Asker interface {
	Ask(ctx context.Context, remote blobcache.Endpoint, req Message, resp *Message) error
}

type BeginTxReq

type BeginTxReq struct {
	Volume blobcache.Handle
	Params blobcache.TxParams
}

func (BeginTxReq) Marshal

func (btx BeginTxReq) Marshal(out []byte) []byte

func (*BeginTxReq) Unmarshal

func (btx *BeginTxReq) Unmarshal(data []byte) error

type BeginTxResp

type BeginTxResp struct {
	// Tx is the handle for the transaction.
	Tx blobcache.Handle
	// VolumeInfo is the volume info for the transaction.
	Info blobcache.TxInfo
}

func (BeginTxResp) Marshal

func (btx BeginTxResp) Marshal(out []byte) []byte

func (*BeginTxResp) Unmarshal

func (btx *BeginTxResp) Unmarshal(data []byte) error

type CloneVolumeReq

type CloneVolumeReq struct {
	Volume blobcache.Handle
}

func (CloneVolumeReq) Marshal

func (cr CloneVolumeReq) Marshal(out []byte) []byte

func (*CloneVolumeReq) Unmarshal

func (cr *CloneVolumeReq) Unmarshal(data []byte) error

type CloneVolumeResp

type CloneVolumeResp struct {
	Handle blobcache.Handle
}

func (CloneVolumeResp) Marshal

func (cr CloneVolumeResp) Marshal(out []byte) []byte

func (*CloneVolumeResp) Unmarshal

func (cr *CloneVolumeResp) Unmarshal(data []byte) error

type CommitReq

type CommitReq struct {
	Tx blobcache.Handle
	// Root can be optionally set to call Save before Commit.
	Root *[]byte
}

func (CommitReq) Marshal

func (cr CommitReq) Marshal(out []byte) []byte

func (*CommitReq) Unmarshal

func (cr *CommitReq) Unmarshal(data []byte) error

type CommitResp

type CommitResp struct{}

func (CommitResp) Marshal

func (cr CommitResp) Marshal(out []byte) []byte

func (*CommitResp) Unmarshal

func (cr *CommitResp) Unmarshal(data []byte) error

type CreateQueueReq

type CreateQueueReq struct {
	Spec blobcache.QueueSpec
}

func (CreateQueueReq) Marshal

func (cq CreateQueueReq) Marshal(out []byte) []byte

func (*CreateQueueReq) Unmarshal

func (cq *CreateQueueReq) Unmarshal(data []byte) error

type CreateQueueResp

type CreateQueueResp struct {
	Handle blobcache.Handle
}

func (CreateQueueResp) Marshal

func (cq CreateQueueResp) Marshal(out []byte) []byte

func (*CreateQueueResp) Unmarshal

func (cq *CreateQueueResp) Unmarshal(data []byte) error

type CreateVolumeReq

type CreateVolumeReq struct {
	Spec blobcache.VolumeSpec
}

func (CreateVolumeReq) Marshal

func (cr CreateVolumeReq) Marshal(out []byte) []byte

func (*CreateVolumeReq) Unmarshal

func (cr *CreateVolumeReq) Unmarshal(data []byte) error

type CreateVolumeResp

type CreateVolumeResp struct {
	Handle blobcache.Handle
	Info   blobcache.VolumeInfo
}

func (CreateVolumeResp) Marshal

func (cr CreateVolumeResp) Marshal(out []byte) []byte

func (*CreateVolumeResp) Unmarshal

func (cr *CreateVolumeResp) Unmarshal(data []byte) error

type DeleteReq

type DeleteReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (DeleteReq) Marshal

func (dr DeleteReq) Marshal(out []byte) []byte

func (*DeleteReq) Unmarshal

func (dr *DeleteReq) Unmarshal(data []byte) error

type DeleteResp

type DeleteResp struct{}

func (DeleteResp) Marshal

func (dr DeleteResp) Marshal(out []byte) []byte

func (*DeleteResp) Unmarshal

func (dr *DeleteResp) Unmarshal(data []byte) error

type DropReq

type DropReq struct {
	Handle blobcache.Handle
}

func (DropReq) Marshal

func (dr DropReq) Marshal(out []byte) []byte

func (*DropReq) Unmarshal

func (dr *DropReq) Unmarshal(data []byte) error

type DropResp

type DropResp struct{}

func (DropResp) Marshal

func (dr DropResp) Marshal(out []byte) []byte

func (*DropResp) Unmarshal

func (dr *DropResp) Unmarshal(data []byte) error

type ExistsReq

type ExistsReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (ExistsReq) Marshal

func (er ExistsReq) Marshal(out []byte) []byte

func (*ExistsReq) Unmarshal

func (er *ExistsReq) Unmarshal(data []byte) error

type ExistsResp

type ExistsResp struct {
	Exists []bool
}

func (ExistsResp) Marshal

func (er ExistsResp) Marshal(out []byte) []byte

func (*ExistsResp) Unmarshal

func (er *ExistsResp) Unmarshal(data []byte) error

type GetReq

type GetReq struct {
	Tx   blobcache.Handle
	CID  blobcache.CID
	Salt *blobcache.CID
}

func (GetReq) Marshal

func (gr GetReq) Marshal(out []byte) []byte

func (*GetReq) Unmarshal

func (gr *GetReq) Unmarshal(data []byte) error

type GetResp

type GetResp struct {
	Data []byte
}

func (GetResp) Marshal

func (gr GetResp) Marshal(out []byte) []byte

func (*GetResp) Unmarshal

func (gr *GetResp) Unmarshal(data []byte) error

type InsertReq

type InsertReq struct {
	Messages []blobcache.Message
}

func (InsertReq) Marshal

func (ir InsertReq) Marshal(out []byte) []byte

func (*InsertReq) Unmarshal

func (ir *InsertReq) Unmarshal(data []byte) error

type InsertResp

type InsertResp struct {
	Success uint32
}

func (InsertResp) Marshal

func (ir InsertResp) Marshal(out []byte) []byte

func (*InsertResp) Unmarshal

func (ir *InsertResp) Unmarshal(data []byte) error

type InspectHandleReq

type InspectHandleReq struct {
	Handle blobcache.Handle
}

func (InspectHandleReq) Marshal

func (ir InspectHandleReq) Marshal(out []byte) []byte

func (*InspectHandleReq) Unmarshal

func (ir *InspectHandleReq) Unmarshal(data []byte) error

type InspectHandleResp

type InspectHandleResp struct {
	Info blobcache.HandleInfo
}

func (InspectHandleResp) Marshal

func (ir InspectHandleResp) Marshal(out []byte) []byte

func (*InspectHandleResp) Unmarshal

func (ir *InspectHandleResp) Unmarshal(data []byte) error

type InspectQueueReq

type InspectQueueReq struct {
	Queue blobcache.Handle
}

func (InspectQueueReq) Marshal

func (iq InspectQueueReq) Marshal(out []byte) []byte

func (*InspectQueueReq) Unmarshal

func (iq *InspectQueueReq) Unmarshal(data []byte) error

type InspectQueueResp

type InspectQueueResp struct {
	Info blobcache.QueueInfo
}

func (InspectQueueResp) Marshal

func (iq InspectQueueResp) Marshal(out []byte) []byte

func (*InspectQueueResp) Unmarshal

func (iq *InspectQueueResp) Unmarshal(data []byte) error

type InspectTxReq

type InspectTxReq struct {
	Tx blobcache.Handle
}

func (InspectTxReq) Marshal

func (r InspectTxReq) Marshal(out []byte) []byte

func (*InspectTxReq) Unmarshal

func (r *InspectTxReq) Unmarshal(data []byte) error

type InspectTxResp

type InspectTxResp struct {
	Info blobcache.TxInfo
}

func (InspectTxResp) Marshal

func (r InspectTxResp) Marshal(out []byte) []byte

func (*InspectTxResp) Unmarshal

func (r *InspectTxResp) Unmarshal(data []byte) error

type InspectVolumeReq

type InspectVolumeReq struct {
	Volume blobcache.Handle
}

func (InspectVolumeReq) Marshal

func (iv InspectVolumeReq) Marshal(out []byte) []byte

func (*InspectVolumeReq) Unmarshal

func (iv *InspectVolumeReq) Unmarshal(data []byte) error

type InspectVolumeResp

type InspectVolumeResp struct {
	Info blobcache.VolumeInfo
}

func (InspectVolumeResp) Marshal

func (iv InspectVolumeResp) Marshal(out []byte) []byte

func (*InspectVolumeResp) Unmarshal

func (iv *InspectVolumeResp) Unmarshal(data []byte) error

type IsVisitedReq

type IsVisitedReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (IsVisitedReq) Marshal

func (ir IsVisitedReq) Marshal(out []byte) []byte

func (*IsVisitedReq) Unmarshal

func (ir *IsVisitedReq) Unmarshal(data []byte) error

type IsVisitedResp

type IsVisitedResp struct {
	Visited []bool
}

func (IsVisitedResp) Marshal

func (ir IsVisitedResp) Marshal(out []byte) []byte

func (*IsVisitedResp) Unmarshal

func (ir *IsVisitedResp) Unmarshal(data []byte) error

type KeepAliveReq

type KeepAliveReq struct {
	Handles []blobcache.Handle
}

func (KeepAliveReq) Marshal

func (kr KeepAliveReq) Marshal(out []byte) []byte

func (*KeepAliveReq) Unmarshal

func (kr *KeepAliveReq) Unmarshal(data []byte) error

type KeepAliveResp

type KeepAliveResp struct{}

func (KeepAliveResp) Marshal

func (kr KeepAliveResp) Marshal(out []byte) []byte

func (*KeepAliveResp) Unmarshal

func (kr *KeepAliveResp) Unmarshal(data []byte) error

type LinkReq

type LinkReq struct {
	Tx     blobcache.Handle
	Subvol blobcache.Handle
	Mask   blobcache.ActionSet
}

func (LinkReq) Marshal

func (ar LinkReq) Marshal(out []byte) []byte

func (*LinkReq) Unmarshal

func (ar *LinkReq) Unmarshal(data []byte) error

type LinkResp

type LinkResp struct{}

func (LinkResp) Marshal

func (ar LinkResp) Marshal(out []byte) []byte

func (*LinkResp) Unmarshal

func (ar *LinkResp) Unmarshal(data []byte) error

type LoadReq

type LoadReq struct {
	Tx blobcache.Handle
}

func (LoadReq) Marshal

func (lr LoadReq) Marshal(out []byte) []byte

func (*LoadReq) Unmarshal

func (lr *LoadReq) Unmarshal(data []byte) error

type LoadResp

type LoadResp struct {
	Root []byte
}

func (LoadResp) Marshal

func (lr LoadResp) Marshal(out []byte) []byte

func (*LoadResp) Unmarshal

func (lr *LoadResp) Unmarshal(data []byte) error

type Message

type Message struct {
	// contains filtered or unexported fields
}

func (*Message) Body

func (m *Message) Body() []byte

func (*Message) Header

func (m *Message) Header() MessageHeader

func (*Message) ReadFrom

func (m *Message) ReadFrom(r io.Reader) (int64, error)

func (*Message) SetBody

func (m *Message) SetBody(body []byte)

func (*Message) SetCode

func (m *Message) SetCode(code MessageType)

func (*Message) SetError

func (m *Message) SetError(err error)

func (*Message) SetSendable

func (m *Message) SetSendable(x Sendable)

SetSendable sets the body of the message to a Sendable

func (*Message) WriteTo

func (m *Message) WriteTo(w io.Writer) (int64, error)

type MessageHeader

type MessageHeader [HeaderLen]byte

func (MessageHeader) BodyLen

func (h MessageHeader) BodyLen() int

func (MessageHeader) Code

func (h MessageHeader) Code() MessageType

func (*MessageHeader) SetBodyLen

func (h *MessageHeader) SetBodyLen(bodyLen int)

func (*MessageHeader) SetCode

func (h *MessageHeader) SetCode(code MessageType)

type MessageType

type MessageType uint8
const (
	MT_UNKNOWN MessageType = iota
	// MT_PING is a request to ping the remote peer.
	MT_PING
)
const (
	MT_HANDLE_INSPECT MessageType = 16 + iota
	MT_HANDLE_DROP
	MT_HANDLE_KEEP_ALIVE
	MT_HANDLE_SHARE
)

Handle messages

const (
	MT_OPEN_FIAT MessageType = 32 + iota
	MT_OPEN_FROM
	MT_VOLUME_INSPECT
	MT_VOLUME_AWAIT
	MT_VOLUME_BEGIN_TX
	MT_VOLUME_CLONE

	MT_CREATE_VOLUME MessageType = 47
)

Volume messages

const (
	MT_TX_INSPECT MessageType = 48 + iota

	MT_TX_COMMIT
	MT_TX_ABORT

	MT_TX_LOAD
	MT_TX_SAVE

	MT_TX_POST
	MT_TX_POST_SALT
	MT_TX_GET
	MT_TX_EXISTS
	MT_TX_DELETE
	MT_TX_ADD_FROM
	MT_TX_VISIT
	MT_TX_IS_VISITED

	MT_TX_LINK
	MT_TX_UNLINK
	MT_TX_VISIT_LINKS
)

Tx messages

const (
	MT_QUEUE_INSPECT MessageType = 80 + iota
	MT_QUEUE_NEXT
	MT_QUEUE_INSERT
	MT_QUEUE_SUB_TO_VOLUME

	MT_QUEUE_CREATE MessageType = 96
)
const (
	// MT_TOPIC_TELL is used for volume implementations to communicate with other volumes.
	MT_TOPIC_TELL MessageType = 127
)

func (MessageType) IsError

func (mt MessageType) IsError() bool

func (MessageType) IsOK

func (mt MessageType) IsOK() bool

type NextReq

type NextReq struct {
	Opts blobcache.NextOpts
	Max  int
}

func (NextReq) Marshal

func (nr NextReq) Marshal(out []byte) []byte

func (*NextReq) Unmarshal

func (nr *NextReq) Unmarshal(data []byte) error

type NextResp

type NextResp struct {
	Messages []blobcache.Message
}

func (NextResp) Marshal

func (nr NextResp) Marshal(out []byte) []byte

func (*NextResp) Unmarshal

func (nr *NextResp) Unmarshal(data []byte) error

type OpenFiatReq

type OpenFiatReq struct {
	Target blobcache.OID
	Mask   blobcache.ActionSet
}

func (OpenFiatReq) Marshal

func (oa OpenFiatReq) Marshal(out []byte) []byte

func (*OpenFiatReq) Unmarshal

func (oa *OpenFiatReq) Unmarshal(data []byte) error

type OpenFiatResp

type OpenFiatResp struct {
	Handle blobcache.Handle
	Info   blobcache.VolumeInfo
}

func (OpenFiatResp) Marshal

func (oa OpenFiatResp) Marshal(out []byte) []byte

func (*OpenFiatResp) Unmarshal

func (oa *OpenFiatResp) Unmarshal(data []byte) error

type OpenFromReq

type OpenFromReq struct {
	Base   blobcache.Handle
	Target blobcache.OID
	Mask   blobcache.ActionSet
}

func (OpenFromReq) Marshal

func (of OpenFromReq) Marshal(out []byte) []byte

func (*OpenFromReq) Unmarshal

func (of *OpenFromReq) Unmarshal(data []byte) error

type OpenFromResp

type OpenFromResp struct {
	Handle blobcache.Handle
	Info   blobcache.VolumeInfo
}

func (OpenFromResp) Marshal

func (of OpenFromResp) Marshal(out []byte) []byte

func (*OpenFromResp) Unmarshal

func (of *OpenFromResp) Unmarshal(data []byte) error

type SaveReq

type SaveReq struct {
	Tx   blobcache.Handle
	Root []byte
}

func (SaveReq) Marshal

func (r SaveReq) Marshal(out []byte) []byte

func (*SaveReq) Unmarshal

func (r *SaveReq) Unmarshal(data []byte) error

type SaveResp

type SaveResp struct{}

func (SaveResp) Marshal

func (r SaveResp) Marshal(out []byte) []byte

func (*SaveResp) Unmarshal

func (r *SaveResp) Unmarshal(data []byte) error

type Sendable

type Sendable interface {
	Marshal(out []byte) []byte
}

Sendable is a type that can be sent in a message

type ShareReq

type ShareReq struct {
	Handle blobcache.Handle
	Peer   blobcache.PeerID
	Mask   blobcache.ActionSet
}

func (ShareReq) Marshal

func (sr ShareReq) Marshal(out []byte) []byte

func (*ShareReq) Unmarshal

func (sr *ShareReq) Unmarshal(data []byte) error

type ShareResp

type ShareResp struct {
	Handle blobcache.Handle
}

func (ShareResp) Marshal

func (sr ShareResp) Marshal(out []byte) []byte

func (*ShareResp) Unmarshal

func (sr *ShareResp) Unmarshal(data []byte) error

type SubToVolumeReq

type SubToVolumeReq struct {
	Queue  blobcache.Handle
	Volume blobcache.Handle
}

func (SubToVolumeReq) Marshal

func (sr SubToVolumeReq) Marshal(out []byte) []byte

func (*SubToVolumeReq) Unmarshal

func (sr *SubToVolumeReq) Unmarshal(data []byte) error

type SubToVolumeResp

type SubToVolumeResp struct{}

func (SubToVolumeResp) Marshal

func (sr SubToVolumeResp) Marshal(out []byte) []byte

func (*SubToVolumeResp) Unmarshal

func (sr *SubToVolumeResp) Unmarshal(data []byte) error

type Teller

type Teller interface {
	Tell(ctx context.Context, remote blobcache.Endpoint, req Message) error
}

type TopicTellMsg

type TopicTellMsg struct {
	// TopicHash is the hash of the topic ID
	TopicHash  blobcache.CID
	Ciphertext []byte
}

func (*TopicTellMsg) Decrypt

func (ttm *TopicTellMsg) Decrypt(tid blobcache.TID, dst *blobcache.Message) error

Decrypt attempts to decrypt the message using topic ID.

func (*TopicTellMsg) Encrypt

func (dst *TopicTellMsg) Encrypt(topicID blobcache.TID, ptext []byte)

Encrypt sets the message to contain ciphertext for ptext on topicID.

func (TopicTellMsg) Marshal

func (ttm TopicTellMsg) Marshal(out []byte) []byte

func (*TopicTellMsg) Unmarshal

func (ttm *TopicTellMsg) Unmarshal(data []byte) error

type UnlinkReq

type UnlinkReq struct {
	Tx      blobcache.Handle
	Targets []blobcache.OID
}

func (UnlinkReq) Marshal

func (ur UnlinkReq) Marshal(out []byte) []byte

func (*UnlinkReq) Unmarshal

func (ur *UnlinkReq) Unmarshal(data []byte) error

type UnlinkResp

type UnlinkResp struct{}

func (UnlinkResp) Marshal

func (ur UnlinkResp) Marshal(out []byte) []byte

func (*UnlinkResp) Unmarshal

func (ur *UnlinkResp) Unmarshal(data []byte) error

type VisitLinksReq

type VisitLinksReq struct {
	Tx      blobcache.Handle
	Targets []blobcache.OID
}

func (VisitLinksReq) Marshal

func (vr VisitLinksReq) Marshal(out []byte) []byte

func (*VisitLinksReq) Unmarshal

func (vr *VisitLinksReq) Unmarshal(data []byte) error

type VisitLinksResp

type VisitLinksResp struct{}

func (VisitLinksResp) Marshal

func (vr VisitLinksResp) Marshal(out []byte) []byte

func (*VisitLinksResp) Unmarshal

func (vr *VisitLinksResp) Unmarshal(data []byte) error

type VisitReq

type VisitReq struct {
	Tx   blobcache.Handle
	CIDs []blobcache.CID
}

func (VisitReq) Marshal

func (vr VisitReq) Marshal(out []byte) []byte

func (*VisitReq) Unmarshal

func (vr *VisitReq) Unmarshal(data []byte) error

type VisitResp

type VisitResp struct{}

func (VisitResp) Marshal

func (vr VisitResp) Marshal(out []byte) []byte

func (*VisitResp) Unmarshal

func (vr *VisitResp) Unmarshal(data []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL