optimize bitfield intersect
This commit is contained in:
parent
c016e34dbc
commit
f4adf03ce5
@ -202,21 +202,15 @@ var bitFieldDecodeCmd = &cli.Command{
|
|||||||
|
|
||||||
var bitFieldIntersectCmd = &cli.Command{
|
var bitFieldIntersectCmd = &cli.Command{
|
||||||
Name: "intersect",
|
Name: "intersect",
|
||||||
|
Usage: "Two bitfields intersect",
|
||||||
Description: "intersect 2 bitfields and print the resulting bitfield as base64",
|
Description: "intersect 2 bitfields and print the resulting bitfield as base64",
|
||||||
Flags: []cli.Flag{
|
|
||||||
&cli.StringFlag{
|
|
||||||
Name: "enc",
|
|
||||||
Value: "base64",
|
|
||||||
Usage: "specify input encoding to parse",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Action: func(cctx *cli.Context) error {
|
Action: func(cctx *cli.Context) error {
|
||||||
b, err := decode(cctx, 1)
|
a, err := decode(cctx, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
a, err := decode(cctx, 0)
|
b, err := decode(cctx, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -226,17 +220,11 @@ var bitFieldIntersectCmd = &cli.Command{
|
|||||||
return xerrors.Errorf("intersect: %w", err)
|
return xerrors.Errorf("intersect: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
s, err := o.RunIterator()
|
str, err := encode(cctx, o)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
fmt.Println(str)
|
||||||
bytes, err := rlepluslazy.EncodeRuns(s, []byte{})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println(base64.StdEncoding.EncodeToString(bytes))
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user