| package jws |
| |
| import "encoding/json" |
| |
| type rawBase64 []byte |
| |
| // MarshalJSON implements json.Marshaler for rawBase64. |
| func (r rawBase64) MarshalJSON() ([]byte, error) { |
| buf := make([]byte, len(r)+2) |
| buf[0] = '"' |
| copy(buf[1:], r) |
| buf[len(buf)-1] = '"' |
| return buf, nil |
| } |
| |
| // MarshalJSON implements json.Unmarshaler for rawBase64. |
| func (r *rawBase64) UnmarshalJSON(b []byte) error { |
| if len(b) > 1 && b[0] == '"' && b[len(b)-1] == '"' { |
| b = b[1 : len(b)-1] |
| } |
| *r = rawBase64(b) |
| return nil |
| } |
| |
| var ( |
| _ json.Marshaler = (rawBase64)(nil) |
| _ json.Unmarshaler = (*rawBase64)(nil) |
| ) |