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) 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
