RawMessage support
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
8
yaml.go
8
yaml.go
@@ -39,6 +39,8 @@ func (c *yamlCodec) Marshal(v interface{}, opts ...codec.Option) ([]byte, error)
|
||||
return []byte(m), nil
|
||||
case *codec.RawMessage:
|
||||
return []byte(*m), nil
|
||||
case yaml.RawMessage:
|
||||
return []byte(m), nil
|
||||
}
|
||||
|
||||
return yaml.Marshal(v)
|
||||
@@ -73,6 +75,12 @@ func (c *yamlCodec) Unmarshal(b []byte, v interface{}, opts ...codec.Option) err
|
||||
case codec.RawMessage:
|
||||
copy(m, b)
|
||||
return nil
|
||||
case yaml.RawMessage:
|
||||
copy(m, b)
|
||||
return nil
|
||||
case *yaml.RawMessage:
|
||||
*m = append((*m)[0:0], b...)
|
||||
return nil
|
||||
}
|
||||
|
||||
return yaml.Unmarshal(b, v)
|
||||
|
||||
Reference in New Issue
Block a user