pkg watch, const DoesNotExist int32
pkg watch, const Exists int32
pkg watch, const InitialStateSkipped int32
pkg watch, func GlobWatcherClient(string) GlobWatcherClientStub
pkg watch, func GlobWatcherServer(GlobWatcherServerMethods) GlobWatcherServerStub
pkg watch, func NewErrUnknownResumeMarker(*context.T) error
pkg watch, method (*Change) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg watch, method (*Change) MakeVDLTarget() vdl.Target
pkg watch, method (*Change) VDLRead(vdl.Decoder) error
pkg watch, method (*ChangeTarget) FinishField(vdl.Target, vdl.Target) error
pkg watch, method (*ChangeTarget) FinishFields(vdl.FieldsTarget) error
pkg watch, method (*ChangeTarget) StartField(string) (vdl.Target, vdl.Target, error)
pkg watch, method (*ChangeTarget) StartFields(*vdl.Type) (vdl.FieldsTarget, error)
pkg watch, method (*ChangeTarget) ZeroField(string) error
pkg watch, method (*GlobRequest) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg watch, method (*GlobRequest) MakeVDLTarget() vdl.Target
pkg watch, method (*GlobRequest) VDLRead(vdl.Decoder) error
pkg watch, method (*GlobRequestTarget) FinishField(vdl.Target, vdl.Target) error
pkg watch, method (*GlobRequestTarget) FinishFields(vdl.FieldsTarget) error
pkg watch, method (*GlobRequestTarget) StartField(string) (vdl.Target, vdl.Target, error)
pkg watch, method (*GlobRequestTarget) StartFields(*vdl.Type) (vdl.FieldsTarget, error)
pkg watch, method (*GlobRequestTarget) ZeroField(string) error
pkg watch, method (*GlobWatcherWatchGlobServerCallStub) Init(rpc.StreamServerCall)
pkg watch, method (*GlobWatcherWatchGlobServerCallStub) SendStream() interface {  Send(item Change) error;}
pkg watch, method (*ResumeMarker) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg watch, method (*ResumeMarker) MakeVDLTarget() vdl.Target
pkg watch, method (*ResumeMarker) VDLRead(vdl.Decoder) error
pkg watch, method (*ResumeMarkerTarget) FromBytes([]byte, *vdl.Type) error
pkg watch, method (Change) VDLWrite(vdl.Encoder) error
pkg watch, method (GlobRequest) VDLWrite(vdl.Encoder) error
pkg watch, method (ResumeMarker) VDLWrite(vdl.Encoder) error
pkg watch, type Change struct
pkg watch, type Change struct, Continued bool
pkg watch, type Change struct, Name string
pkg watch, type Change struct, ResumeMarker ResumeMarker
pkg watch, type Change struct, State int32
pkg watch, type Change struct, Value *vom.RawBytes
pkg watch, type ChangeTarget struct
pkg watch, type ChangeTarget struct, Value *Change
pkg watch, type ChangeTarget struct, embedded vdl.FieldsTargetBase
pkg watch, type ChangeTarget struct, embedded vdl.TargetBase
pkg watch, type GlobRequest struct
pkg watch, type GlobRequest struct, Pattern string
pkg watch, type GlobRequest struct, ResumeMarker ResumeMarker
pkg watch, type GlobRequestTarget struct
pkg watch, type GlobRequestTarget struct, Value *GlobRequest
pkg watch, type GlobRequestTarget struct, embedded vdl.FieldsTargetBase
pkg watch, type GlobRequestTarget struct, embedded vdl.TargetBase
pkg watch, type GlobWatcherClientMethods interface { WatchGlob }
pkg watch, type GlobWatcherClientMethods interface, WatchGlob(*context.T, GlobRequest, ...rpc.CallOpt) (GlobWatcherWatchGlobClientCall, error)
pkg watch, type GlobWatcherClientStub interface, WatchGlob(*context.T, GlobRequest, ...rpc.CallOpt) (GlobWatcherWatchGlobClientCall, error)
pkg watch, type GlobWatcherClientStub interface, unexported methods
pkg watch, type GlobWatcherServerMethods interface { WatchGlob }
pkg watch, type GlobWatcherServerMethods interface, WatchGlob(*context.T, GlobWatcherWatchGlobServerCall, GlobRequest) error
pkg watch, type GlobWatcherServerStub interface { Describe__, WatchGlob }
pkg watch, type GlobWatcherServerStub interface, Describe__() []rpc.InterfaceDesc
pkg watch, type GlobWatcherServerStub interface, WatchGlob(*context.T, *GlobWatcherWatchGlobServerCallStub, GlobRequest) error
pkg watch, type GlobWatcherServerStubMethods interface { WatchGlob }
pkg watch, type GlobWatcherServerStubMethods interface, WatchGlob(*context.T, *GlobWatcherWatchGlobServerCallStub, GlobRequest) error
pkg watch, type GlobWatcherWatchGlobClientCall interface { Finish, RecvStream }
pkg watch, type GlobWatcherWatchGlobClientCall interface, Finish() error
pkg watch, type GlobWatcherWatchGlobClientCall interface, RecvStream() interface {  Advance() bool;; Value() Change;; Err() error;}
pkg watch, type GlobWatcherWatchGlobClientStream interface { RecvStream }
pkg watch, type GlobWatcherWatchGlobClientStream interface, RecvStream() interface {  Advance() bool;; Value() Change;; Err() error;}
pkg watch, type GlobWatcherWatchGlobServerCall interface, SendStream() interface {  Send(item Change) error;}
pkg watch, type GlobWatcherWatchGlobServerCall interface, unexported methods
pkg watch, type GlobWatcherWatchGlobServerCallStub struct
pkg watch, type GlobWatcherWatchGlobServerCallStub struct, embedded rpc.StreamServerCall
pkg watch, type GlobWatcherWatchGlobServerStream interface { SendStream }
pkg watch, type GlobWatcherWatchGlobServerStream interface, SendStream() interface {  Send(item Change) error;}
pkg watch, type ResumeMarker []byte
pkg watch, type ResumeMarkerTarget struct
pkg watch, type ResumeMarkerTarget struct, Value *ResumeMarker
pkg watch, type ResumeMarkerTarget struct, embedded vdl.TargetBase
pkg watch, var ErrUnknownResumeMarker unknown-type
pkg watch, var GlobWatcherDesc rpc.InterfaceDesc
