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 (*GlobWatcherWatchGlobServerCallStub) Init(rpc.StreamServerCall)
pkg watch, method (*GlobWatcherWatchGlobServerCallStub) SendStream() interface {  Send(item Change) 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 *vdl.Value
pkg watch, type GlobRequest struct
pkg watch, type GlobRequest struct, Pattern string
pkg watch, type GlobRequest struct, ResumeMarker ResumeMarker
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 }
pkg watch, type GlobWatcherClientStub interface, WatchGlob(*context.T, GlobRequest, ...rpc.CallOpt) (GlobWatcherWatchGlobClientCall, error)
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 { GrantedBlessings, LocalEndpoint, RemoteEndpoint, Security, SendStream, Server, Suffix }
pkg watch, type GlobWatcherWatchGlobServerCall interface, GrantedBlessings() security.Blessings
pkg watch, type GlobWatcherWatchGlobServerCall interface, LocalEndpoint() naming.Endpoint
pkg watch, type GlobWatcherWatchGlobServerCall interface, RemoteEndpoint() naming.Endpoint
pkg watch, type GlobWatcherWatchGlobServerCall interface, Security() security.Call
pkg watch, type GlobWatcherWatchGlobServerCall interface, SendStream() interface {  Send(item Change) error;}
pkg watch, type GlobWatcherWatchGlobServerCall interface, Server() Server
pkg watch, type GlobWatcherWatchGlobServerCall interface, Suffix() string
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, var ErrUnknownResumeMarker verror.IDAction
pkg watch, var GlobWatcherDesc rpc.InterfaceDesc
