...

Source file src/github.com/grpc-ecosystem/grpc-gateway/runtime/marshaler.go

Documentation: github.com/grpc-ecosystem/grpc-gateway/runtime

     1  package runtime
     2  
     3  import (
     4  	"io"
     5  )
     6  
     7  // Marshaler defines a conversion between byte sequence and gRPC payloads / fields.
     8  type Marshaler interface {
     9  	// Marshal marshals "v" into byte sequence.
    10  	Marshal(v interface{}) ([]byte, error)
    11  	// Unmarshal unmarshals "data" into "v".
    12  	// "v" must be a pointer value.
    13  	Unmarshal(data []byte, v interface{}) error
    14  	// NewDecoder returns a Decoder which reads byte sequence from "r".
    15  	NewDecoder(r io.Reader) Decoder
    16  	// NewEncoder returns an Encoder which writes bytes sequence into "w".
    17  	NewEncoder(w io.Writer) Encoder
    18  	// ContentType returns the Content-Type which this marshaler is responsible for.
    19  	ContentType() string
    20  }
    21  
    22  // Marshalers that implement contentTypeMarshaler will have their ContentTypeFromMessage method called
    23  // to set the Content-Type header on the response
    24  type contentTypeMarshaler interface {
    25  	// ContentTypeFromMessage returns the Content-Type this marshaler produces from the provided message
    26  	ContentTypeFromMessage(v interface{}) string
    27  }
    28  
    29  // Decoder decodes a byte sequence
    30  type Decoder interface {
    31  	Decode(v interface{}) error
    32  }
    33  
    34  // Encoder encodes gRPC payloads / fields into byte sequence.
    35  type Encoder interface {
    36  	Encode(v interface{}) error
    37  }
    38  
    39  // DecoderFunc adapts an decoder function into Decoder.
    40  type DecoderFunc func(v interface{}) error
    41  
    42  // Decode delegates invocations to the underlying function itself.
    43  func (f DecoderFunc) Decode(v interface{}) error { return f(v) }
    44  
    45  // EncoderFunc adapts an encoder function into Encoder
    46  type EncoderFunc func(v interface{}) error
    47  
    48  // Encode delegates invocations to the underlying function itself.
    49  func (f EncoderFunc) Encode(v interface{}) error { return f(v) }
    50  
    51  // Delimited defines the streaming delimiter.
    52  type Delimited interface {
    53  	// Delimiter returns the record separator for the stream.
    54  	Delimiter() []byte
    55  }
    56  

View as plain text