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 }