pkg logreader, const AllEntries int32
pkg logreader, func LogFileClient(string) LogFileClientStub
pkg logreader, func LogFileServer(LogFileServerMethods) LogFileServerStub
pkg logreader, method (*LogEntry) FillVDLTarget(vdl.Target, *vdl.Type) error
pkg logreader, method (*LogEntry) MakeVDLTarget() vdl.Target
pkg logreader, method (*LogEntry) VDLRead(vdl.Decoder) error
pkg logreader, method (*LogEntryTarget) FinishField(vdl.Target, vdl.Target) error
pkg logreader, method (*LogEntryTarget) FinishFields(vdl.FieldsTarget) error
pkg logreader, method (*LogEntryTarget) StartField(string) (vdl.Target, vdl.Target, error)
pkg logreader, method (*LogEntryTarget) StartFields(*vdl.Type) (vdl.FieldsTarget, error)
pkg logreader, method (*LogEntryTarget) ZeroField(string) error
pkg logreader, method (*LogFileReadLogServerCallStub) Init(rpc.StreamServerCall)
pkg logreader, method (*LogFileReadLogServerCallStub) SendStream() interface {  Send(item LogEntry) error;}
pkg logreader, method (LogEntry) VDLIsZero() bool
pkg logreader, method (LogEntry) VDLWrite(vdl.Encoder) error
pkg logreader, type LogEntry struct
pkg logreader, type LogEntry struct, Line string
pkg logreader, type LogEntry struct, Position int64
pkg logreader, type LogEntryTarget struct
pkg logreader, type LogEntryTarget struct, Value *LogEntry
pkg logreader, type LogEntryTarget struct, embedded vdl.FieldsTargetBase
pkg logreader, type LogEntryTarget struct, embedded vdl.TargetBase
pkg logreader, type LogFileClientMethods interface { ReadLog, Size }
pkg logreader, type LogFileClientMethods interface, ReadLog(*context.T, int64, int32, bool, ...rpc.CallOpt) (LogFileReadLogClientCall, error)
pkg logreader, type LogFileClientMethods interface, Size(*context.T, ...rpc.CallOpt) (int64, error)
pkg logreader, type LogFileClientStub interface, ReadLog(*context.T, int64, int32, bool, ...rpc.CallOpt) (LogFileReadLogClientCall, error)
pkg logreader, type LogFileClientStub interface, Size(*context.T, ...rpc.CallOpt) (int64, error)
pkg logreader, type LogFileClientStub interface, unexported methods
pkg logreader, type LogFileReadLogClientCall interface { Finish, RecvStream }
pkg logreader, type LogFileReadLogClientCall interface, Finish() (int64, error)
pkg logreader, type LogFileReadLogClientCall interface, RecvStream() interface {  Advance() bool;; Value() LogEntry;; Err() error;}
pkg logreader, type LogFileReadLogClientStream interface { RecvStream }
pkg logreader, type LogFileReadLogClientStream interface, RecvStream() interface {  Advance() bool;; Value() LogEntry;; Err() error;}
pkg logreader, type LogFileReadLogServerCall interface, SendStream() interface {  Send(item LogEntry) error;}
pkg logreader, type LogFileReadLogServerCall interface, unexported methods
pkg logreader, type LogFileReadLogServerCallStub struct
pkg logreader, type LogFileReadLogServerCallStub struct, embedded rpc.StreamServerCall
pkg logreader, type LogFileReadLogServerStream interface { SendStream }
pkg logreader, type LogFileReadLogServerStream interface, SendStream() interface {  Send(item LogEntry) error;}
pkg logreader, type LogFileServerMethods interface { ReadLog, Size }
pkg logreader, type LogFileServerMethods interface, ReadLog(*context.T, LogFileReadLogServerCall, int64, int32, bool) (int64, error)
pkg logreader, type LogFileServerMethods interface, Size(*context.T, rpc.ServerCall) (int64, error)
pkg logreader, type LogFileServerStub interface { Describe__, ReadLog, Size }
pkg logreader, type LogFileServerStub interface, Describe__() []rpc.InterfaceDesc
pkg logreader, type LogFileServerStub interface, ReadLog(*context.T, *LogFileReadLogServerCallStub, int64, int32, bool) (int64, error)
pkg logreader, type LogFileServerStub interface, Size(*context.T, rpc.ServerCall) (int64, error)
pkg logreader, type LogFileServerStubMethods interface { ReadLog, Size }
pkg logreader, type LogFileServerStubMethods interface, ReadLog(*context.T, *LogFileReadLogServerCallStub, int64, int32, bool) (int64, error)
pkg logreader, type LogFileServerStubMethods interface, Size(*context.T, rpc.ServerCall) (int64, error)
pkg logreader, var LogFileDesc rpc.InterfaceDesc
