github.com/ipld/go-ipld-prime@v0.21.0/schema/gen/go/mixins/mapGenMixin.go (about) 1 package mixins 2 3 import ( 4 "io" 5 6 "github.com/ipld/go-ipld-prime/datamodel" 7 ) 8 9 type MapTraits struct { 10 PkgName string 11 TypeName string // see doc in kindTraitsGenerator 12 TypeSymbol string // see doc in kindTraitsGenerator 13 } 14 15 func (MapTraits) Kind() datamodel.Kind { 16 return datamodel.Kind_Map 17 } 18 func (g MapTraits) EmitNodeMethodKind(w io.Writer) { 19 doTemplate(` 20 func ({{ .TypeSymbol }}) Kind() datamodel.Kind { 21 return datamodel.Kind_Map 22 } 23 `, w, g) 24 } 25 func (g MapTraits) EmitNodeMethodLookupByIndex(w io.Writer) { 26 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodLookupByIndex(w) 27 } 28 func (g MapTraits) EmitNodeMethodLookupBySegment(w io.Writer) { 29 doTemplate(` 30 func (n {{ .TypeSymbol }}) LookupBySegment(seg datamodel.PathSegment) (datamodel.Node, error) { 31 return n.LookupByString(seg.String()) 32 } 33 `, w, g) 34 } 35 func (g MapTraits) EmitNodeMethodListIterator(w io.Writer) { 36 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodListIterator(w) 37 } 38 func (g MapTraits) EmitNodeMethodIsAbsent(w io.Writer) { 39 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodIsAbsent(w) 40 } 41 func (g MapTraits) EmitNodeMethodIsNull(w io.Writer) { 42 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodIsNull(w) 43 } 44 func (g MapTraits) EmitNodeMethodAsBool(w io.Writer) { 45 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodAsBool(w) 46 } 47 func (g MapTraits) EmitNodeMethodAsInt(w io.Writer) { 48 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodAsInt(w) 49 } 50 func (g MapTraits) EmitNodeMethodAsFloat(w io.Writer) { 51 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodAsFloat(w) 52 } 53 func (g MapTraits) EmitNodeMethodAsString(w io.Writer) { 54 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodAsString(w) 55 } 56 func (g MapTraits) EmitNodeMethodAsBytes(w io.Writer) { 57 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodAsBytes(w) 58 } 59 func (g MapTraits) EmitNodeMethodAsLink(w io.Writer) { 60 kindTraitsGenerator{g.PkgName, g.TypeName, g.TypeSymbol, datamodel.Kind_Map}.emitNodeMethodAsLink(w) 61 } 62 63 type MapAssemblerTraits struct { 64 PkgName string 65 TypeName string // see doc in kindAssemblerTraitsGenerator 66 AppliedPrefix string // see doc in kindAssemblerTraitsGenerator 67 } 68 69 func (MapAssemblerTraits) Kind() datamodel.Kind { 70 return datamodel.Kind_Map 71 } 72 func (g MapAssemblerTraits) EmitNodeAssemblerMethodBeginList(w io.Writer) { 73 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodBeginList(w) 74 } 75 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignNull(w io.Writer) { 76 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignNull(w) 77 } 78 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignBool(w io.Writer) { 79 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignBool(w) 80 } 81 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignInt(w io.Writer) { 82 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignInt(w) 83 } 84 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignFloat(w io.Writer) { 85 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignFloat(w) 86 } 87 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignString(w io.Writer) { 88 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignString(w) 89 } 90 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignBytes(w io.Writer) { 91 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignBytes(w) 92 } 93 func (g MapAssemblerTraits) EmitNodeAssemblerMethodAssignLink(w io.Writer) { 94 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodAssignLink(w) 95 } 96 func (g MapAssemblerTraits) EmitNodeAssemblerMethodPrototype(w io.Writer) { 97 kindAssemblerTraitsGenerator{g.PkgName, g.TypeName, g.AppliedPrefix, datamodel.Kind_Map}.emitNodeAssemblerMethodPrototype(w) 98 }