Documentation
¶
Overview ¶
Package enumbitmap provides functions to encode slices of enumeration strings into integer bitmap values and vice versa.
Each bit correspond to a unique enumeration value. It supports maximum 32 bit (33 distinct values including NONE).
Example with 8 bits: ¶
00000000 = 0 dec = NONE 00000001 = 1 dec = FIRST 00000010 = 2 dec = SECOND 00000100 = 4 dec = THIRD 00001000 = 8 dec = FOURTH 00010000 = 16 dec = FIFTH 00100000 = 32 dec = SIXTH 01000000 = 64 dec = SEVENTH 10000000 = 128 dec = EIGHTH 00001001 = 1 + 8 = 9 dec = FIRST + FOURTH
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BitMapToStrings ¶
BitMapToStrings converts a int bitmap value into a string slice.
Example ¶
package main
import (
"fmt"
"log"
"github.com/Vonage/gosrvlib/pkg/enumbitmap"
)
func main() {
// create a binary map
// each bit correspond to a different entry
eis := map[int]string{
0: "first", // 00000000
1: "second", // 00000001
2: "third", // 00000010
4: "fourth", // 00000100
8: "fifth", // 00001000
16: "sixth", // 00010000
32: "seventh", // 00100000
64: "eighth", // 01000000
128: "ninth", // 10000000
}
// convert binary code to a slice of strings
s, err := enumbitmap.BitMapToStrings(eis, 0b00101010) // 42
if err != nil {
log.Fatal(err)
}
fmt.Println(s)
}
Output: [third fifth seventh]
func StringsToBitMap ¶
StringsToBitMap converts a string slice into a int bitmap value.
Example ¶
package main
import (
"fmt"
"log"
"github.com/Vonage/gosrvlib/pkg/enumbitmap"
)
func main() {
// create a binary map
// each entry is assigned to a different bit
esi := map[string]int{
"first": 0, // 00000000
"second": 1, // 00000001
"third": 2, // 00000010
"fourth": 4, // 00000100
"fifth": 8, // 00001000
"sixth": 16, // 00010000
"seventh": 32, // 00100000
"eighth": 64, // 01000000
"ninth": 128, // 10000000
}
// convert a slice of string to the equivalent binary code
b, err := enumbitmap.StringsToBitMap(
esi,
[]string{
"third",
"fifth",
"seventh",
},
)
if err != nil {
log.Fatal(err)
}
fmt.Println(b)
}
Output: 42
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.