lordwelch f56ee42b79 Change signatures to constant strings
Fix issues from golangci-lint

Add sublime project file
2021-01-11 01:24:36 -08:00

73 lines
1.3 KiB
Go

//+build ignore
package main
import (
"bytes"
"fmt"
"io"
"log"
"os"
"github.com/pierrec/lz4/v4/internal/lz4block"
"github.com/pierrec/packer"
"golang.org/x/tools/imports"
)
type DescriptorFlags struct {
// FLG
_ [2]int
ContentChecksum [1]bool
Size [1]bool
BlockChecksum [1]bool
BlockIndependence [1]bool
Version [2]uint16
// BD
_ [4]int
BlockSizeIndex [3]lz4block.BlockSizeIndex
_ [1]int
}
type DataBlockSize struct {
size [31]int
Uncompressed bool
}
func main() {
err := do()
if err != nil {
log.Fatal(err)
}
}
func do() error {
out, err := os.Create("frame_gen.go")
if err != nil {
return err
}
defer out.Close()
pkg := "lz4stream"
buf := new(bytes.Buffer)
for i, t := range []interface{}{
DescriptorFlags{}, DataBlockSize{},
} {
if i > 0 {
pkg = ""
}
err := packer.GenPackedStruct(buf, &packer.Config{PkgName: pkg}, t)
if err != nil {
return fmt.Errorf("%T: %v", t, err)
}
}
// Resolve imports.
code, err := imports.Process("", buf.Bytes(), nil)
if err != nil {
// Output without imports.
_, _ = io.Copy(out, buf)
return err
}
_, err = io.Copy(out, bytes.NewReader(code))
return err
}