pkg internal, func TypeTesterClient(string) TypeTesterClientStub
pkg internal, func TypeTesterServer(TypeTesterServerMethods) TypeTesterServerStub
pkg internal, method (*TypeTesterZStreamServerCallStub) Init(rpc.StreamServerCall)
pkg internal, method (*TypeTesterZStreamServerCallStub) SendStream() interface {  Send(item bool) error;}
pkg internal, type Array2Int [2]int32
pkg internal, type Struct struct
pkg internal, type Struct struct, X int32
pkg internal, type Struct struct, Y int32
pkg internal, type TypeTesterClientMethods interface { EchoBool, EchoByte, EchoFloat32, EchoFloat64, EchoInt32, EchoInt64, EchoString, EchoUint32, EchoUint64, XEchoArray, XEchoMap, XEchoSet, XEchoSlice, XEchoStruct, YMultiArg, YNoArgs, ZStream }
pkg internal, type TypeTesterClientMethods interface, EchoBool(*context.T, bool, ...rpc.CallOpt) (bool, error)
pkg internal, type TypeTesterClientMethods interface, EchoByte(*context.T, byte, ...rpc.CallOpt) (byte, error)
pkg internal, type TypeTesterClientMethods interface, EchoFloat32(*context.T, float32, ...rpc.CallOpt) (float32, error)
pkg internal, type TypeTesterClientMethods interface, EchoFloat64(*context.T, float64, ...rpc.CallOpt) (float64, error)
pkg internal, type TypeTesterClientMethods interface, EchoInt32(*context.T, int32, ...rpc.CallOpt) (int32, error)
pkg internal, type TypeTesterClientMethods interface, EchoInt64(*context.T, int64, ...rpc.CallOpt) (int64, error)
pkg internal, type TypeTesterClientMethods interface, EchoString(*context.T, string, ...rpc.CallOpt) (string, error)
pkg internal, type TypeTesterClientMethods interface, EchoUint32(*context.T, uint32, ...rpc.CallOpt) (uint32, error)
pkg internal, type TypeTesterClientMethods interface, EchoUint64(*context.T, uint64, ...rpc.CallOpt) (uint64, error)
pkg internal, type TypeTesterClientMethods interface, XEchoArray(*context.T, Array2Int, ...rpc.CallOpt) (Array2Int, error)
pkg internal, type TypeTesterClientMethods interface, XEchoMap(*context.T, map[int32]string, ...rpc.CallOpt) (map[int32]string, error)
pkg internal, type TypeTesterClientMethods interface, XEchoSet(*context.T, map[int32]struct{}, ...rpc.CallOpt) (map[int32]struct{}, error)
pkg internal, type TypeTesterClientMethods interface, XEchoSlice(*context.T, []int32, ...rpc.CallOpt) ([]int32, error)
pkg internal, type TypeTesterClientMethods interface, XEchoStruct(*context.T, Struct, ...rpc.CallOpt) (Struct, error)
pkg internal, type TypeTesterClientMethods interface, YMultiArg(*context.T, int32, int32, ...rpc.CallOpt) (int32, int32, error)
pkg internal, type TypeTesterClientMethods interface, YNoArgs(*context.T, ...rpc.CallOpt) error
pkg internal, type TypeTesterClientMethods interface, ZStream(*context.T, int32, bool, ...rpc.CallOpt) (TypeTesterZStreamClientCall, error)
pkg internal, type TypeTesterClientStub interface { EchoBool, EchoByte, EchoFloat32, EchoFloat64, EchoInt32, EchoInt64, EchoString, EchoUint32, EchoUint64, XEchoArray, XEchoMap, XEchoSet, XEchoSlice, XEchoStruct, YMultiArg, YNoArgs, ZStream }
pkg internal, type TypeTesterClientStub interface, EchoBool(*context.T, bool, ...rpc.CallOpt) (bool, error)
pkg internal, type TypeTesterClientStub interface, EchoByte(*context.T, byte, ...rpc.CallOpt) (byte, error)
pkg internal, type TypeTesterClientStub interface, EchoFloat32(*context.T, float32, ...rpc.CallOpt) (float32, error)
pkg internal, type TypeTesterClientStub interface, EchoFloat64(*context.T, float64, ...rpc.CallOpt) (float64, error)
pkg internal, type TypeTesterClientStub interface, EchoInt32(*context.T, int32, ...rpc.CallOpt) (int32, error)
pkg internal, type TypeTesterClientStub interface, EchoInt64(*context.T, int64, ...rpc.CallOpt) (int64, error)
pkg internal, type TypeTesterClientStub interface, EchoString(*context.T, string, ...rpc.CallOpt) (string, error)
pkg internal, type TypeTesterClientStub interface, EchoUint32(*context.T, uint32, ...rpc.CallOpt) (uint32, error)
pkg internal, type TypeTesterClientStub interface, EchoUint64(*context.T, uint64, ...rpc.CallOpt) (uint64, error)
pkg internal, type TypeTesterClientStub interface, XEchoArray(*context.T, Array2Int, ...rpc.CallOpt) (Array2Int, error)
pkg internal, type TypeTesterClientStub interface, XEchoMap(*context.T, map[int32]string, ...rpc.CallOpt) (map[int32]string, error)
pkg internal, type TypeTesterClientStub interface, XEchoSet(*context.T, map[int32]struct{}, ...rpc.CallOpt) (map[int32]struct{}, error)
pkg internal, type TypeTesterClientStub interface, XEchoSlice(*context.T, []int32, ...rpc.CallOpt) ([]int32, error)
pkg internal, type TypeTesterClientStub interface, XEchoStruct(*context.T, Struct, ...rpc.CallOpt) (Struct, error)
pkg internal, type TypeTesterClientStub interface, YMultiArg(*context.T, int32, int32, ...rpc.CallOpt) (int32, int32, error)
pkg internal, type TypeTesterClientStub interface, YNoArgs(*context.T, ...rpc.CallOpt) error
pkg internal, type TypeTesterClientStub interface, ZStream(*context.T, int32, bool, ...rpc.CallOpt) (TypeTesterZStreamClientCall, error)
pkg internal, type TypeTesterServerMethods interface { EchoBool, EchoByte, EchoFloat32, EchoFloat64, EchoInt32, EchoInt64, EchoString, EchoUint32, EchoUint64, XEchoArray, XEchoMap, XEchoSet, XEchoSlice, XEchoStruct, YMultiArg, YNoArgs, ZStream }
pkg internal, type TypeTesterServerMethods interface, EchoBool(*context.T, rpc.ServerCall, bool) (bool, error)
pkg internal, type TypeTesterServerMethods interface, EchoByte(*context.T, rpc.ServerCall, byte) (byte, error)
pkg internal, type TypeTesterServerMethods interface, EchoFloat32(*context.T, rpc.ServerCall, float32) (float32, error)
pkg internal, type TypeTesterServerMethods interface, EchoFloat64(*context.T, rpc.ServerCall, float64) (float64, error)
pkg internal, type TypeTesterServerMethods interface, EchoInt32(*context.T, rpc.ServerCall, int32) (int32, error)
pkg internal, type TypeTesterServerMethods interface, EchoInt64(*context.T, rpc.ServerCall, int64) (int64, error)
pkg internal, type TypeTesterServerMethods interface, EchoString(*context.T, rpc.ServerCall, string) (string, error)
pkg internal, type TypeTesterServerMethods interface, EchoUint32(*context.T, rpc.ServerCall, uint32) (uint32, error)
pkg internal, type TypeTesterServerMethods interface, EchoUint64(*context.T, rpc.ServerCall, uint64) (uint64, error)
pkg internal, type TypeTesterServerMethods interface, XEchoArray(*context.T, rpc.ServerCall, Array2Int) (Array2Int, error)
pkg internal, type TypeTesterServerMethods interface, XEchoMap(*context.T, rpc.ServerCall, map[int32]string) (map[int32]string, error)
pkg internal, type TypeTesterServerMethods interface, XEchoSet(*context.T, rpc.ServerCall, map[int32]struct{}) (map[int32]struct{}, error)
pkg internal, type TypeTesterServerMethods interface, XEchoSlice(*context.T, rpc.ServerCall, []int32) ([]int32, error)
pkg internal, type TypeTesterServerMethods interface, XEchoStruct(*context.T, rpc.ServerCall, Struct) (Struct, error)
pkg internal, type TypeTesterServerMethods interface, YMultiArg(*context.T, rpc.ServerCall, int32, int32) (int32, int32, error)
pkg internal, type TypeTesterServerMethods interface, YNoArgs(*context.T, rpc.ServerCall) error
pkg internal, type TypeTesterServerMethods interface, ZStream(*context.T, TypeTesterZStreamServerCall, int32, bool) error
pkg internal, type TypeTesterServerStub interface { Describe__, EchoBool, EchoByte, EchoFloat32, EchoFloat64, EchoInt32, EchoInt64, EchoString, EchoUint32, EchoUint64, XEchoArray, XEchoMap, XEchoSet, XEchoSlice, XEchoStruct, YMultiArg, YNoArgs, ZStream }
pkg internal, type TypeTesterServerStub interface, Describe__() []rpc.InterfaceDesc
pkg internal, type TypeTesterServerStub interface, EchoBool(*context.T, rpc.ServerCall, bool) (bool, error)
pkg internal, type TypeTesterServerStub interface, EchoByte(*context.T, rpc.ServerCall, byte) (byte, error)
pkg internal, type TypeTesterServerStub interface, EchoFloat32(*context.T, rpc.ServerCall, float32) (float32, error)
pkg internal, type TypeTesterServerStub interface, EchoFloat64(*context.T, rpc.ServerCall, float64) (float64, error)
pkg internal, type TypeTesterServerStub interface, EchoInt32(*context.T, rpc.ServerCall, int32) (int32, error)
pkg internal, type TypeTesterServerStub interface, EchoInt64(*context.T, rpc.ServerCall, int64) (int64, error)
pkg internal, type TypeTesterServerStub interface, EchoString(*context.T, rpc.ServerCall, string) (string, error)
pkg internal, type TypeTesterServerStub interface, EchoUint32(*context.T, rpc.ServerCall, uint32) (uint32, error)
pkg internal, type TypeTesterServerStub interface, EchoUint64(*context.T, rpc.ServerCall, uint64) (uint64, error)
pkg internal, type TypeTesterServerStub interface, XEchoArray(*context.T, rpc.ServerCall, Array2Int) (Array2Int, error)
pkg internal, type TypeTesterServerStub interface, XEchoMap(*context.T, rpc.ServerCall, map[int32]string) (map[int32]string, error)
pkg internal, type TypeTesterServerStub interface, XEchoSet(*context.T, rpc.ServerCall, map[int32]struct{}) (map[int32]struct{}, error)
pkg internal, type TypeTesterServerStub interface, XEchoSlice(*context.T, rpc.ServerCall, []int32) ([]int32, error)
pkg internal, type TypeTesterServerStub interface, XEchoStruct(*context.T, rpc.ServerCall, Struct) (Struct, error)
pkg internal, type TypeTesterServerStub interface, YMultiArg(*context.T, rpc.ServerCall, int32, int32) (int32, int32, error)
pkg internal, type TypeTesterServerStub interface, YNoArgs(*context.T, rpc.ServerCall) error
pkg internal, type TypeTesterServerStub interface, ZStream(*context.T, *TypeTesterZStreamServerCallStub, int32, bool) error
pkg internal, type TypeTesterServerStubMethods interface { EchoBool, EchoByte, EchoFloat32, EchoFloat64, EchoInt32, EchoInt64, EchoString, EchoUint32, EchoUint64, XEchoArray, XEchoMap, XEchoSet, XEchoSlice, XEchoStruct, YMultiArg, YNoArgs, ZStream }
pkg internal, type TypeTesterServerStubMethods interface, EchoBool(*context.T, rpc.ServerCall, bool) (bool, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoByte(*context.T, rpc.ServerCall, byte) (byte, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoFloat32(*context.T, rpc.ServerCall, float32) (float32, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoFloat64(*context.T, rpc.ServerCall, float64) (float64, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoInt32(*context.T, rpc.ServerCall, int32) (int32, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoInt64(*context.T, rpc.ServerCall, int64) (int64, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoString(*context.T, rpc.ServerCall, string) (string, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoUint32(*context.T, rpc.ServerCall, uint32) (uint32, error)
pkg internal, type TypeTesterServerStubMethods interface, EchoUint64(*context.T, rpc.ServerCall, uint64) (uint64, error)
pkg internal, type TypeTesterServerStubMethods interface, XEchoArray(*context.T, rpc.ServerCall, Array2Int) (Array2Int, error)
pkg internal, type TypeTesterServerStubMethods interface, XEchoMap(*context.T, rpc.ServerCall, map[int32]string) (map[int32]string, error)
pkg internal, type TypeTesterServerStubMethods interface, XEchoSet(*context.T, rpc.ServerCall, map[int32]struct{}) (map[int32]struct{}, error)
pkg internal, type TypeTesterServerStubMethods interface, XEchoSlice(*context.T, rpc.ServerCall, []int32) ([]int32, error)
pkg internal, type TypeTesterServerStubMethods interface, XEchoStruct(*context.T, rpc.ServerCall, Struct) (Struct, error)
pkg internal, type TypeTesterServerStubMethods interface, YMultiArg(*context.T, rpc.ServerCall, int32, int32) (int32, int32, error)
pkg internal, type TypeTesterServerStubMethods interface, YNoArgs(*context.T, rpc.ServerCall) error
pkg internal, type TypeTesterServerStubMethods interface, ZStream(*context.T, *TypeTesterZStreamServerCallStub, int32, bool) error
pkg internal, type TypeTesterZStreamClientCall interface { Finish, RecvStream }
pkg internal, type TypeTesterZStreamClientCall interface, Finish() error
pkg internal, type TypeTesterZStreamClientCall interface, RecvStream() interface {  Advance() bool;; Value() bool;; Err() error;}
pkg internal, type TypeTesterZStreamClientStream interface { RecvStream }
pkg internal, type TypeTesterZStreamClientStream interface, RecvStream() interface {  Advance() bool;; Value() bool;; Err() error;}
pkg internal, type TypeTesterZStreamServerCall interface { GrantedBlessings, LocalEndpoint, RemoteEndpoint, Security, SendStream, Server, Suffix }
pkg internal, type TypeTesterZStreamServerCall interface, GrantedBlessings() security.Blessings
pkg internal, type TypeTesterZStreamServerCall interface, LocalEndpoint() naming.Endpoint
pkg internal, type TypeTesterZStreamServerCall interface, RemoteEndpoint() naming.Endpoint
pkg internal, type TypeTesterZStreamServerCall interface, Security() security.Call
pkg internal, type TypeTesterZStreamServerCall interface, SendStream() interface {  Send(item bool) error;}
pkg internal, type TypeTesterZStreamServerCall interface, Server() Server
pkg internal, type TypeTesterZStreamServerCall interface, Suffix() string
pkg internal, type TypeTesterZStreamServerCallStub struct
pkg internal, type TypeTesterZStreamServerCallStub struct, embedded rpc.StreamServerCall
pkg internal, type TypeTesterZStreamServerStream interface { SendStream }
pkg internal, type TypeTesterZStreamServerStream interface, SendStream() interface {  Send(item bool) error;}
pkg internal, var TypeTesterDesc rpc.InterfaceDesc
