| package runtime |
| |
| import ( |
| "io" |
| ) |
| |
| // Marshaler defines a conversion between byte sequence and gRPC payloads / fields. |
| type Marshaler interface { |
| // Marshal marshals "v" into byte sequence. |
| Marshal(v interface{}) ([]byte, error) |
| // Unmarshal unmarshals "data" into "v". |
| // "v" must be a pointer value. |
| Unmarshal(data []byte, v interface{}) error |
| // NewDecoder returns a Decoder which reads byte sequence from "r". |
| NewDecoder(r io.Reader) Decoder |
| // NewEncoder returns an Encoder which writes bytes sequence into "w". |
| NewEncoder(w io.Writer) Encoder |
| // ContentType returns the Content-Type which this marshaler is responsible for. |
| ContentType() string |
| } |
| |
| // Marshalers that implement contentTypeMarshaler will have their ContentTypeFromMessage method called |
| // to set the Content-Type header on the response |
| type contentTypeMarshaler interface { |
| // ContentTypeFromMessage returns the Content-Type this marshaler produces from the provided message |
| ContentTypeFromMessage(v interface{}) string |
| } |
| |
| // Decoder decodes a byte sequence |
| type Decoder interface { |
| Decode(v interface{}) error |
| } |
| |
| // Encoder encodes gRPC payloads / fields into byte sequence. |
| type Encoder interface { |
| Encode(v interface{}) error |
| } |
| |
| // DecoderFunc adapts an decoder function into Decoder. |
| type DecoderFunc func(v interface{}) error |
| |
| // Decode delegates invocations to the underlying function itself. |
| func (f DecoderFunc) Decode(v interface{}) error { return f(v) } |
| |
| // EncoderFunc adapts an encoder function into Encoder |
| type EncoderFunc func(v interface{}) error |
| |
| // Encode delegates invocations to the underlying function itself. |
| func (f EncoderFunc) Encode(v interface{}) error { return f(v) } |
| |
| // Delimited defines the streaming delimiter. |
| type Delimited interface { |
| // Delimiter returns the record separator for the stream. |
| Delimiter() []byte |
| } |