pkg logreader, const AllEntries int32
pkg logreader, func LogFileClient(string) LogFileClientStub
pkg logreader, func LogFileServer(LogFileServerMethods) LogFileServerStub
pkg logreader, method (*LogEntry) VDLRead(vdl.Decoder) 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 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
