github.com/hamba/avro/v2@v2.22.1-0.20240518180522-aff3955acf7d/converter.go (about)

     1  package avro
     2  
     3  func createLongConverter(typ Type) func(*Reader) int64 {
     4  	switch typ {
     5  	case Int:
     6  		return func(r *Reader) int64 { return int64(r.ReadInt()) }
     7  	default:
     8  		return nil
     9  	}
    10  }
    11  
    12  func createFloatConverter(typ Type) func(*Reader) float32 {
    13  	switch typ {
    14  	case Int:
    15  		return func(r *Reader) float32 { return float32(r.ReadInt()) }
    16  	case Long:
    17  		return func(r *Reader) float32 { return float32(r.ReadLong()) }
    18  	default:
    19  		return nil
    20  	}
    21  }
    22  
    23  func createDoubleConverter(typ Type) func(*Reader) float64 {
    24  	switch typ {
    25  	case Int:
    26  		return func(r *Reader) float64 { return float64(r.ReadInt()) }
    27  	case Long:
    28  		return func(r *Reader) float64 { return float64(r.ReadLong()) }
    29  	case Float:
    30  		return func(r *Reader) float64 { return float64(r.ReadFloat()) }
    31  	default:
    32  		return nil
    33  	}
    34  }