github.com/ipld/go-ipld-prime@v0.21.0/node/basicnode/bool.go (about)

     1  package basicnode
     2  
     3  import (
     4  	"github.com/ipld/go-ipld-prime/datamodel"
     5  	"github.com/ipld/go-ipld-prime/node/mixins"
     6  )
     7  
     8  var (
     9  	_ datamodel.Node          = plainBool(false)
    10  	_ datamodel.NodePrototype = Prototype__Bool{}
    11  	_ datamodel.NodeBuilder   = &plainBool__Builder{}
    12  	_ datamodel.NodeAssembler = &plainBool__Assembler{}
    13  )
    14  
    15  func NewBool(value bool) datamodel.Node {
    16  	v := plainBool(value)
    17  	return &v
    18  }
    19  
    20  // plainBool is a simple boxed boolean that complies with datamodel.Node.
    21  type plainBool bool
    22  
    23  // -- Node interface methods -->
    24  
    25  func (plainBool) Kind() datamodel.Kind {
    26  	return datamodel.Kind_Bool
    27  }
    28  func (plainBool) LookupByString(string) (datamodel.Node, error) {
    29  	return mixins.Bool{TypeName: "bool"}.LookupByString("")
    30  }
    31  func (plainBool) LookupByNode(key datamodel.Node) (datamodel.Node, error) {
    32  	return mixins.Bool{TypeName: "bool"}.LookupByNode(nil)
    33  }
    34  func (plainBool) LookupByIndex(idx int64) (datamodel.Node, error) {
    35  	return mixins.Bool{TypeName: "bool"}.LookupByIndex(0)
    36  }
    37  func (plainBool) LookupBySegment(seg datamodel.PathSegment) (datamodel.Node, error) {
    38  	return mixins.Bool{TypeName: "bool"}.LookupBySegment(seg)
    39  }
    40  func (plainBool) MapIterator() datamodel.MapIterator {
    41  	return nil
    42  }
    43  func (plainBool) ListIterator() datamodel.ListIterator {
    44  	return nil
    45  }
    46  func (plainBool) Length() int64 {
    47  	return -1
    48  }
    49  func (plainBool) IsAbsent() bool {
    50  	return false
    51  }
    52  func (plainBool) IsNull() bool {
    53  	return false
    54  }
    55  func (n plainBool) AsBool() (bool, error) {
    56  	return bool(n), nil
    57  }
    58  func (plainBool) AsInt() (int64, error) {
    59  	return mixins.Bool{TypeName: "bool"}.AsInt()
    60  }
    61  func (plainBool) AsFloat() (float64, error) {
    62  	return mixins.Bool{TypeName: "bool"}.AsFloat()
    63  }
    64  func (plainBool) AsString() (string, error) {
    65  	return mixins.Bool{TypeName: "bool"}.AsString()
    66  }
    67  func (plainBool) AsBytes() ([]byte, error) {
    68  	return mixins.Bool{TypeName: "bool"}.AsBytes()
    69  }
    70  func (plainBool) AsLink() (datamodel.Link, error) {
    71  	return mixins.Bool{TypeName: "bool"}.AsLink()
    72  }
    73  func (plainBool) Prototype() datamodel.NodePrototype {
    74  	return Prototype__Bool{}
    75  }
    76  
    77  // -- NodePrototype -->
    78  
    79  type Prototype__Bool struct{}
    80  
    81  func (Prototype__Bool) NewBuilder() datamodel.NodeBuilder {
    82  	var w plainBool
    83  	return &plainBool__Builder{plainBool__Assembler{w: &w}}
    84  }
    85  
    86  // -- NodeBuilder -->
    87  
    88  type plainBool__Builder struct {
    89  	plainBool__Assembler
    90  }
    91  
    92  func (nb *plainBool__Builder) Build() datamodel.Node {
    93  	return nb.w
    94  }
    95  func (nb *plainBool__Builder) Reset() {
    96  	var w plainBool
    97  	*nb = plainBool__Builder{plainBool__Assembler{w: &w}}
    98  }
    99  
   100  // -- NodeAssembler -->
   101  
   102  type plainBool__Assembler struct {
   103  	w *plainBool
   104  }
   105  
   106  func (plainBool__Assembler) BeginMap(sizeHint int64) (datamodel.MapAssembler, error) {
   107  	return mixins.BoolAssembler{TypeName: "bool"}.BeginMap(0)
   108  }
   109  func (plainBool__Assembler) BeginList(sizeHint int64) (datamodel.ListAssembler, error) {
   110  	return mixins.BoolAssembler{TypeName: "bool"}.BeginList(0)
   111  }
   112  func (plainBool__Assembler) AssignNull() error {
   113  	return mixins.BoolAssembler{TypeName: "bool"}.AssignNull()
   114  }
   115  func (na *plainBool__Assembler) AssignBool(v bool) error {
   116  	*na.w = plainBool(v)
   117  	return nil
   118  }
   119  func (plainBool__Assembler) AssignInt(int64) error {
   120  	return mixins.BoolAssembler{TypeName: "bool"}.AssignInt(0)
   121  }
   122  func (plainBool__Assembler) AssignFloat(float64) error {
   123  	return mixins.BoolAssembler{TypeName: "bool"}.AssignFloat(0)
   124  }
   125  func (plainBool__Assembler) AssignString(string) error {
   126  	return mixins.BoolAssembler{TypeName: "bool"}.AssignString("")
   127  }
   128  func (plainBool__Assembler) AssignBytes([]byte) error {
   129  	return mixins.BoolAssembler{TypeName: "bool"}.AssignBytes(nil)
   130  }
   131  func (plainBool__Assembler) AssignLink(datamodel.Link) error {
   132  	return mixins.BoolAssembler{TypeName: "bool"}.AssignLink(nil)
   133  }
   134  func (na *plainBool__Assembler) AssignNode(v datamodel.Node) error {
   135  	if v2, err := v.AsBool(); err != nil {
   136  		return err
   137  	} else {
   138  		*na.w = plainBool(v2)
   139  		return nil
   140  	}
   141  }
   142  func (plainBool__Assembler) Prototype() datamodel.NodePrototype {
   143  	return Prototype__Bool{}
   144  }