Documentation
¶
Index ¶
- Variables
- func PrecomputeMarshalByReflection(v reflect.Value, marshalOptions *protojson.MarshalOptions) (map[string]interface{}, error)
- type Encoder
- func (e Encoder) Encode(body interface{}) ([]byte, error)
- func (e Encoder) EncodeAndWrite(writer io.Writer, beforeWriteFn func() error, body interface{}) error
- func (e Encoder) EncodeAndWriteResponse(writer http.ResponseWriter, response gonethttpresponse.Response) error
- func (e Encoder) EncodeResponse(response gonethttpresponse.Response) ([]byte, error)
- func (e Encoder) PrecomputeMarshal(body interface{}) (map[string]interface{}, error)
Constants ¶
This section is empty.
Variables ¶
var (
ErrCodeProtoJSONMarshalFailed string
)
Functions ¶
func PrecomputeMarshalByReflection ¶
func PrecomputeMarshalByReflection( v reflect.Value, marshalOptions *protojson.MarshalOptions, ) (map[string]interface{}, error)
PrecomputeMarshalByReflection marshals a struct to a map[string]interface{} using reflection, handling nested proto.Message fields appropriately
Parameters:
- v: The reflect.Value of the struct to marshal
- marshalOptions: The protojson.MarshalOptions to use (optional)
Returns:
- map[string]interface{}: The marshaled struct as a map
- error: The error if any
Types ¶
type Encoder ¶
type Encoder struct {
// contains filtered or unexported fields
}
Encoder is the implementation of the Encoder interface
func NewEncoder ¶
func NewEncoder( mode *goflagsmode.Flag, ) *Encoder
NewEncoder creates a new Encoder instance
Parameters:
- mode: the flag mode
- logger: the logger (optional, can be nil)
Returns:
- *Encoder: the new Encoder instance
func (Encoder) Encode ¶
Encode encodes the given body to JSON
Parameters:
- body: The body to encode
Returns:
- ([]byte, error): The encoded body and the error if any
func (Encoder) EncodeAndWrite ¶ added in v0.12.3
func (e Encoder) EncodeAndWrite( writer io.Writer, beforeWriteFn func() error, body interface{}, ) error
EncodeAndWrite encodes and writes the given body to the writer
Parameters:
- writer: The writer to write the encoded body to
- beforeWriteFn: The function to call before writing the body
- body: The body to encode
Returns:
- error: The error if any
func (Encoder) EncodeAndWriteResponse ¶ added in v0.12.3
func (e Encoder) EncodeAndWriteResponse( writer http.ResponseWriter, response gonethttpresponse.Response, ) error
EncodeAndWriteResponse encodes and writes the response to the HTTP response writer
Parameters:
- writer: The HTTP response writer
- response: The response to encode, must have a data field that is a proto.Message
Returns:
- error: The error if any
func (Encoder) EncodeResponse ¶ added in v0.12.3
func (e Encoder) EncodeResponse( response gonethttpresponse.Response, ) ([]byte, error)
EncodeResponse encodes the given response to JSON
Parameters:
- response: The response to encode
Returns:
- ([]byte, error): The encoded response and the error if any
func (Encoder) PrecomputeMarshal ¶ added in v0.12.3
PrecomputeMarshal precomputes the marshaled body by reflecting on the instance
Parameters:
- body: The body to precompute the marshaled body for
Returns:
- (map[string]interface{}, error): The precomputed marshaled body and the error if any