1- package don
1+ package encoding
22
33import (
44 "context"
@@ -16,11 +16,11 @@ type EncoderConstraint interface {
1616 Marshaler | ContextMarshaler | ResponseEncoder
1717}
1818
19- // RegisterEncoder registers a response encoder.
20- func RegisterEncoder [T EncoderConstraint ](contentType string , enc T , aliases ... string ) {
19+ // RegisterEncoder registers a response encoder on a given media type .
20+ func RegisterEncoder [T EncoderConstraint ](enc T , mime string , aliases ... string ) {
2121 switch e := any (enc ).(type ) {
2222 case Marshaler :
23- encoders [contentType ] = func (ctx * fasthttp.RequestCtx , v any ) error {
23+ encoders [mime ] = func (ctx * fasthttp.RequestCtx , v any ) error {
2424 b , err := e (v )
2525 if err != nil {
2626 return err
@@ -30,7 +30,7 @@ func RegisterEncoder[T EncoderConstraint](contentType string, enc T, aliases ...
3030 }
3131
3232 case ContextMarshaler :
33- encoders [contentType ] = func (ctx * fasthttp.RequestCtx , v any ) error {
33+ encoders [mime ] = func (ctx * fasthttp.RequestCtx , v any ) error {
3434 b , err := e (ctx , v )
3535 if err != nil {
3636 return err
@@ -40,19 +40,17 @@ func RegisterEncoder[T EncoderConstraint](contentType string, enc T, aliases ...
4040 }
4141
4242 case ResponseEncoder :
43- encoders [contentType ] = e
43+ encoders [mime ] = e
4444 }
4545
4646 for _ , alias := range aliases {
47- encoders [alias ] = encoders [contentType ]
47+ encoders [alias ] = encoders [mime ]
4848 }
4949}
5050
51- func getEncoder (mime string ) (ResponseEncoder , error ) {
52- if enc := encoders [mime ]; enc != nil {
53- return enc , nil
54- }
55- return nil , ErrNotAcceptable
51+ // GetEncoder returns the response encoder for a given media type.
52+ func GetEncoder (mime string ) ResponseEncoder {
53+ return encoders [mime ]
5654}
5755
5856var encoders = map [string ]ResponseEncoder {}
0 commit comments