mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 05:42:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 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.
 | |
| 	// The parameter describes the type which is being marshalled, which can sometimes
 | |
| 	// affect the content type returned.
 | |
| 	ContentType(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
 | |
| }
 |