mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 16:13:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package data
 | |
| 
 | |
| import "github.com/docker/go/canonical/json"
 | |
| 
 | |
| // Serializer is an interface that can marshal and unmarshal TUF data.  This
 | |
| // is expected to be a canonical JSON marshaller
 | |
| type serializer interface {
 | |
| 	MarshalCanonical(from interface{}) ([]byte, error)
 | |
| 	Marshal(from interface{}) ([]byte, error)
 | |
| 	Unmarshal(from []byte, to interface{}) error
 | |
| }
 | |
| 
 | |
| // CanonicalJSON marshals to and from canonical JSON
 | |
| type canonicalJSON struct{}
 | |
| 
 | |
| // MarshalCanonical returns the canonical JSON form of a thing
 | |
| func (c canonicalJSON) MarshalCanonical(from interface{}) ([]byte, error) {
 | |
| 	return json.MarshalCanonical(from)
 | |
| }
 | |
| 
 | |
| // Marshal returns the regular non-canonical JSON form of a thing
 | |
| func (c canonicalJSON) Marshal(from interface{}) ([]byte, error) {
 | |
| 	return json.Marshal(from)
 | |
| }
 | |
| 
 | |
| // Unmarshal unmarshals some JSON bytes
 | |
| func (c canonicalJSON) Unmarshal(from []byte, to interface{}) error {
 | |
| 	return json.Unmarshal(from, to)
 | |
| }
 | |
| 
 | |
| // defaultSerializer is a canonical JSON serializer
 | |
| var defaultSerializer serializer = canonicalJSON{}
 | |
| 
 | |
| func setDefaultSerializer(s serializer) {
 | |
| 	defaultSerializer = s
 | |
| }
 | 
