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  }