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