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  }