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  }