mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-14 02:10:21 +00:00
56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
|
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
|
||
|
}
|