Documentation
¶
Index ¶
- Variables
- func Convert[T any, R any](slice []T, f func(in T) R) []R
- func MarshalMetadata(md metadata.MD) (*structpb.Struct, error)
- func MetadataForRequest(req *Request) metadata.MD
- func NewClientConn(transport ClientTransport) grpc.ClientConnInterface
- func PeerForRequest(req *Request) *peer.Peer
- func TimeoutForRequest(req *Request) (time.Duration, bool, error)
- func UnmarshalMetadata(s *structpb.Struct) metadata.MD
- type ClientTransport
- type Request
- type Response
- type Server
- type TransportStream
- func (r *TransportStream) Method() string
- func (r *TransportStream) Response() (*Response, error)
- func (r *TransportStream) SendHeader(md metadata.MD) error
- func (r *TransportStream) SetHeader(md metadata.MD) error
- func (r *TransportStream) SetResponse(resp any) error
- func (r *TransportStream) SetStatus(st *status.Status)
- func (r *TransportStream) SetTrailer(md metadata.MD) error
Constants ¶
This section is empty.
Variables ¶
var ErrIllegalHeaderWrite = status.Errorf(codes.Internal, "transport: SetHeader/SetTrailer called after headers were sent")
var ErrIllegalSendHeader = status.Errorf(codes.Internal, "transport: SendHeader called multiple times")
Functions ¶
func MetadataForRequest ¶
func NewClientConn ¶ added in v0.2.76
func NewClientConn(transport ClientTransport) grpc.ClientConnInterface
func PeerForRequest ¶
TODO(morgabra): The transport impl has to give this to us I suppose.
Types ¶
type ClientTransport ¶
func NewLambdaClientTransport ¶ added in v0.2.76
func NewLambdaClientTransport(ctx context.Context, client *lambda.Client, functionName string) (ClientTransport, error)
NewLambdaClientTransport returns a new client transport that invokes a lambda function.
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
func NewRequest ¶
func (*Request) MarshalJSON ¶
func (*Request) UnmarshalJSON ¶
UnmarshalJSON unmarshals the JSON into a Request, discarding any unknown fields.
It also filters out any annotations that are not known to the global registry which happens frequently for new features and would otherwise require rolling every lambda function.
Our requests are small in size, dwarfed by the work of the connector, so the performance impact is negligible.
func (*Request) UnmarshalRequest ¶
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
func ErrorResponse ¶
ErrorResponse converts a given error to a status.Status and returns a *pbtransport.Response. status.FromError(err) must unwrap a status.Status for this to work - all other errors are converted to grpc codes.Unknown errors.
func (*Response) MarshalJSON ¶
func (*Response) UnmarshalJSON ¶
func (*Response) UnmarshalResponse ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(unaryInterceptor grpc.UnaryServerInterceptor, ) *Server
func (*Server) RegisterService ¶
func (s *Server) RegisterService(sd *grpc.ServiceDesc, ss any)
RegisterService registers a service and its implementation to the gRPC server. This is lifted from grpc.Server.
type TransportStream ¶
type TransportStream struct {
// contains filtered or unexported fields
}
func NewTransportStream ¶
func NewTransportStream(method *grpc.MethodDesc) *TransportStream
func (*TransportStream) Method ¶
func (r *TransportStream) Method() string
func (*TransportStream) Response ¶
func (r *TransportStream) Response() (*Response, error)
func (*TransportStream) SendHeader ¶
func (r *TransportStream) SendHeader(md metadata.MD) error
func (*TransportStream) SetResponse ¶
func (r *TransportStream) SetResponse(resp any) error
func (*TransportStream) SetStatus ¶
func (r *TransportStream) SetStatus(st *status.Status)
func (*TransportStream) SetTrailer ¶
func (r *TransportStream) SetTrailer(md metadata.MD) error