bitfield add encode
This commit is contained in:
parent
21835c785b
commit
c016e34dbc
@ -306,28 +306,41 @@ var bitFieldEncodeCmd = &cli.Command{
|
|||||||
out.Set(i)
|
out.Set(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
s, err := out.RunIterator()
|
str, err := encode(cctx, out)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
fmt.Println(str)
|
||||||
bytes, err := rlepluslazy.EncodeRuns(s, []byte{})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
switch cctx.String("enc") {
|
|
||||||
case "base64":
|
|
||||||
fmt.Println(base64.StdEncoding.EncodeToString(bytes))
|
|
||||||
case "hex":
|
|
||||||
fmt.Println(hex.EncodeToString(bytes))
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("unrecognized encoding: %s", cctx.String("enc"))
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func encode(cctx *cli.Context, field bitfield.BitField) (string, error) {
|
||||||
|
s, err := field.RunIterator()
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
bytes, err := rlepluslazy.EncodeRuns(s, []byte{})
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
var str string
|
||||||
|
switch cctx.String("enc") {
|
||||||
|
case "base64":
|
||||||
|
str = base64.StdEncoding.EncodeToString(bytes)
|
||||||
|
case "hex":
|
||||||
|
str = hex.EncodeToString(bytes)
|
||||||
|
default:
|
||||||
|
return "", fmt.Errorf("unrecognized encoding: %s", cctx.String("enc"))
|
||||||
|
}
|
||||||
|
|
||||||
|
return str, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func decode(cctx *cli.Context, i int) (bitfield.BitField, error) {
|
func decode(cctx *cli.Context, i int) (bitfield.BitField, error) {
|
||||||
var val string
|
var val string
|
||||||
if cctx.Args().Present() {
|
if cctx.Args().Present() {
|
||||||
|
Loading…
Reference in New Issue
Block a user