diff options
Diffstat (limited to 'internal/store/header.go')
| -rw-r--r-- | internal/store/header.go | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/internal/store/header.go b/internal/store/header.go index a6e756f9..5b5d73be 100644 --- a/internal/store/header.go +++ b/internal/store/header.go @@ -14,22 +14,25 @@ import ( const ( // entryHeaderMagic are magic bytes at the beginning of the state entry file. entryHeaderMagic = "\x00\xff\xca\xfe" - // entryHeaderRevision follows entryHeaderMagic and is incremented for revisions of the format. + // entryHeaderRevision follows entryHeaderMagic and is incremented for + // revisions of the format. entryHeaderRevision = "\x00\x00" - // entryHeaderSize is the fixed size of the header in bytes, including the enablement byte and its complement. + // entryHeaderSize is the fixed size of the header in bytes, including the + // enablement byte and its complement. entryHeaderSize = len(entryHeaderMagic+entryHeaderRevision) + 2 ) -// entryHeaderEncode encodes a state entry header for a [hst.Enablement] byte. -func entryHeaderEncode(et hst.Enablement) *[entryHeaderSize]byte { +// entryHeaderEncode encodes a state entry header for a [hst.Enablements] byte. +func entryHeaderEncode(et hst.Enablements) *[entryHeaderSize]byte { data := [entryHeaderSize]byte([]byte( - entryHeaderMagic + entryHeaderRevision + string([]hst.Enablement{et, ^et}), + entryHeaderMagic + entryHeaderRevision + string([]hst.Enablements{et, ^et}), )) return &data } -// entryHeaderDecode validates a state entry header and returns the [hst.Enablement] byte. -func entryHeaderDecode(data *[entryHeaderSize]byte) (hst.Enablement, error) { +// entryHeaderDecode validates a state entry header and returns the +// [hst.Enablements] byte. +func entryHeaderDecode(data *[entryHeaderSize]byte) (hst.Enablements, error) { if magic := data[:len(entryHeaderMagic)]; string(magic) != entryHeaderMagic { return 0, errors.New("invalid header " + hex.EncodeToString(magic)) } @@ -41,7 +44,7 @@ func entryHeaderDecode(data *[entryHeaderSize]byte) (hst.Enablement, error) { if et != ^data[len(entryHeaderMagic+entryHeaderRevision)+1] { return 0, errors.New("header enablement value is inconsistent") } - return hst.Enablement(et), nil + return hst.Enablements(et), nil } // EntrySizeError is returned for a file too small to hold a state entry header. @@ -68,8 +71,8 @@ func entryCheckFile(fi os.FileInfo) error { return nil } -// entryReadHeader reads [hst.Enablement] from an [io.Reader]. -func entryReadHeader(r io.Reader) (hst.Enablement, error) { +// entryReadHeader reads [hst.Enablements] from an [io.Reader]. +func entryReadHeader(r io.Reader) (hst.Enablements, error) { var data [entryHeaderSize]byte if n, err := r.Read(data[:]); err != nil { return 0, err @@ -79,8 +82,8 @@ func entryReadHeader(r io.Reader) (hst.Enablement, error) { return entryHeaderDecode(&data) } -// entryWriteHeader writes [hst.Enablement] header to an [io.Writer]. -func entryWriteHeader(w io.Writer, et hst.Enablement) error { +// entryWriteHeader writes [hst.Enablements] header to an [io.Writer]. +func entryWriteHeader(w io.Writer, et hst.Enablements) error { _, err := w.Write(entryHeaderEncode(et)[:]) return err } |
