github.com/ipld/go-ipld-prime@v0.21.0/fluent/qp/example_test.go (about)

     1  package qp_test
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/ipld/go-ipld-prime/codec/dagjson"
     7  	"github.com/ipld/go-ipld-prime/datamodel"
     8  	"github.com/ipld/go-ipld-prime/fluent/qp"
     9  	"github.com/ipld/go-ipld-prime/node/basicnode"
    10  )
    11  
    12  // TODO: can we make ListEntry/MapEntry less verbose?
    13  
    14  func Example() {
    15  	n, err := qp.BuildMap(basicnode.Prototype.Any, 4, func(ma datamodel.MapAssembler) {
    16  		qp.MapEntry(ma, "some key", qp.String("some value"))
    17  		qp.MapEntry(ma, "another key", qp.String("another value"))
    18  		qp.MapEntry(ma, "nested map", qp.Map(2, func(ma datamodel.MapAssembler) {
    19  			qp.MapEntry(ma, "deeper entries", qp.String("deeper values"))
    20  			qp.MapEntry(ma, "more deeper entries", qp.String("more deeper values"))
    21  		}))
    22  		qp.MapEntry(ma, "nested list", qp.List(2, func(la datamodel.ListAssembler) {
    23  			qp.ListEntry(la, qp.Int(1))
    24  			qp.ListEntry(la, qp.Int(2))
    25  		}))
    26  	})
    27  	if err != nil {
    28  		panic(err)
    29  	}
    30  	dagjson.Encode(n, os.Stdout)
    31  
    32  	// Output:
    33  	// {"another key":"another value","nested list":[1,2],"nested map":{"deeper entries":"deeper values","more deeper entries":"more deeper values"},"some key":"some value"}
    34  }