mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-03 17:32:27 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			888 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			888 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package exifundefined
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/dsoprea/go-logging"
 | 
						|
)
 | 
						|
 | 
						|
// UndefinedTagHandle defines one undefined-type tag with a corresponding
 | 
						|
// decoder.
 | 
						|
type UndefinedTagHandle struct {
 | 
						|
	IfdPath string
 | 
						|
	TagId   uint16
 | 
						|
}
 | 
						|
 | 
						|
func registerEncoder(entity EncodeableValue, encoder UndefinedValueEncoder) {
 | 
						|
	typeName := entity.EncoderName()
 | 
						|
 | 
						|
	_, found := encoders[typeName]
 | 
						|
	if found == true {
 | 
						|
		log.Panicf("encoder already registered: %v", typeName)
 | 
						|
	}
 | 
						|
 | 
						|
	encoders[typeName] = encoder
 | 
						|
}
 | 
						|
 | 
						|
func registerDecoder(ifdPath string, tagId uint16, decoder UndefinedValueDecoder) {
 | 
						|
	uth := UndefinedTagHandle{
 | 
						|
		IfdPath: ifdPath,
 | 
						|
		TagId:   tagId,
 | 
						|
	}
 | 
						|
 | 
						|
	_, found := decoders[uth]
 | 
						|
	if found == true {
 | 
						|
		log.Panicf("decoder already registered: %v", uth)
 | 
						|
	}
 | 
						|
 | 
						|
	decoders[uth] = decoder
 | 
						|
}
 | 
						|
 | 
						|
var (
 | 
						|
	encoders = make(map[string]UndefinedValueEncoder)
 | 
						|
	decoders = make(map[UndefinedTagHandle]UndefinedValueDecoder)
 | 
						|
)
 |