github.com/tunabay/go-bitarray@v1.3.1/bitarray_encoding_example_test.go (about) 1 // Copyright (c) 2021 Hirotsuna Mizuno. All rights reserved. 2 // Use of this source code is governed by the MIT license that can be found in 3 // the LICENSE file. 4 5 package bitarray_test 6 7 import ( 8 "encoding/json" 9 "fmt" 10 11 "github.com/tunabay/go-bitarray" 12 "gopkg.in/yaml.v3" 13 ) 14 15 func ExampleBitArray_MarshalBinary() { 16 ba := bitarray.MustParse("1111-0101 11") 17 18 bin, _ := ba.MarshalBinary() 19 fmt.Printf("%x\n", bin) 20 21 // Output: 22 // f5c3 23 } 24 25 func ExampleBitArray_MarshalText() { 26 ba := bitarray.MustParse("1111-0101 11") 27 28 txt, _ := ba.MarshalText() 29 fmt.Printf("%s\n", txt) 30 31 // Output: 32 // 1111010111 33 } 34 35 func ExampleBitArray_MarshalJSON() { 36 data := &struct { 37 Foo *bitarray.BitArray `json:"foox"` 38 Bar *bitarray.BitArray 39 Baz *bitarray.BitArray 40 Qux *bitarray.BitArray 41 List []*bitarray.BitArray 42 }{ 43 Foo: bitarray.MustParse("1111-0000 111"), 44 Bar: bitarray.MustParse("0000-0000"), 45 Baz: bitarray.MustParse(""), 46 List: []*bitarray.BitArray{ 47 bitarray.MustParse("0001"), 48 bitarray.MustParse("1000"), 49 }, 50 } 51 52 out, err := json.MarshalIndent(data, "", " ") 53 if err != nil { 54 panic(err) 55 } 56 57 fmt.Println(string(out)) 58 59 // Output: 60 // { 61 // "foox": "11110000111", 62 // "Bar": "00000000", 63 // "Baz": "", 64 // "Qux": null, 65 // "List": [ 66 // "0001", 67 // "1000" 68 // ] 69 // } 70 } 71 72 func ExampleBitArray_MarshalYAML() { 73 data := &struct { 74 Foo *bitarray.BitArray `yaml:"foox"` 75 Bar *bitarray.BitArray 76 Baz *bitarray.BitArray 77 Qux *bitarray.BitArray 78 List []*bitarray.BitArray 79 }{ 80 Foo: bitarray.MustParse("1111-0000 111"), 81 Bar: bitarray.MustParse("0000-0000"), 82 Baz: bitarray.MustParse(""), 83 List: []*bitarray.BitArray{ 84 bitarray.MustParse("0001"), 85 bitarray.MustParse("1000"), 86 }, 87 } 88 89 out, err := yaml.Marshal(data) 90 if err != nil { 91 panic(err) 92 } 93 94 fmt.Println(string(out)) 95 96 // Output: 97 // foox: "11110000111" 98 // bar: "00000000" 99 // baz: "" 100 // qux: null 101 // list: 102 // - "0001" 103 // - "1000" 104 }