github.com/Schaudge/grailbase@v0.0.0-20240223061707-44c758a471c0/recordio/recordio.go (about) 1 package recordio 2 3 import ( 4 "github.com/Schaudge/grailbase/recordio/internal" 5 ) 6 7 // TransformFunc is called to (un)compress or (un)encrypt data. Parameter 8 // scratch is passed as an performance hint. If the result of the transformation 9 // fits in scratch, the function should store the result in scratch and return 10 // it as the first return value. Else, it should allocate a new []byte and 11 // return it. 12 type TransformFunc func(scratch []byte, in [][]byte) (out []byte, err error) 13 14 // FormatVersion defines the file-format version. Not for general use. It may 15 // be removed without notice. 16 type FormatVersion int 17 18 const ( 19 // V1 is pre 2018-02 format 20 V1 FormatVersion = 1 21 // V2 is post 2018-02 format 22 V2 FormatVersion = 2 23 ) 24 25 // MaxReadRecordSize defines a max size for a record when reading to avoid 26 // crashes for unreasonable requests. 27 var MaxReadRecordSize = internal.MaxReadRecordSize 28 29 // MarshalFunc is called to serialize data. Parameter scratch is passed as an 30 // performance hint. If the result of the transformation fits in scratch, the 31 // function should store the result in scratch and return it as the first return 32 // value. Else, it should allocate a new []byte and return it. 33 type MarshalFunc func(scratch []byte, v interface{}) ([]byte, error) 34 35 // MagicPacked is the chunk header for legacy and v2 data chunks. Not for 36 // general use. 37 var MagicPacked = internal.MagicPacked