mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-02 22:17:06 +08:00
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
![]() |
/*
|
||
|
* This file is subject to the terms and conditions defined in
|
||
|
* file 'LICENSE.md', which is part of this source code package.
|
||
|
*/
|
||
|
|
||
|
package reader
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
)
|
||
|
|
||
|
// StreamReader is the interface that allows to read bit, bits, byte, bytes change and get the
|
||
|
// stream position, align the bits.
|
||
|
type StreamReader interface {
|
||
|
io.Reader
|
||
|
io.ByteReader
|
||
|
io.Seeker
|
||
|
|
||
|
// Align resets the bits position of the given reader.
|
||
|
// It returns how many bits left were skipped.
|
||
|
Align() byte
|
||
|
|
||
|
// BitPosition gets the current bit position.
|
||
|
BitPosition() int
|
||
|
|
||
|
// Mark marks a position in the stream to be returned to by a subsequent call to 'Reset'.
|
||
|
Mark()
|
||
|
|
||
|
// Length returns the length of the total data used by the reader.
|
||
|
Length() uint64
|
||
|
|
||
|
// ReadBit reads the next binary value from the current cache.
|
||
|
// Equivalent of ReadBool method but returns an integer.
|
||
|
ReadBit() (int, error)
|
||
|
|
||
|
// ReadBits reads the bits of size 'n' from the reader.
|
||
|
ReadBits(n byte) (uint64, error)
|
||
|
|
||
|
// ReadBool reads the next binary value from the current cache.
|
||
|
ReadBool() (bool, error)
|
||
|
|
||
|
// Reset returns the stream pointer to its previous position, including the bit offset,
|
||
|
// at the time of the most recent unmatched call to mark.
|
||
|
Reset()
|
||
|
|
||
|
// StreamPosition gets the stream position of the stream reader.
|
||
|
StreamPosition() int64
|
||
|
}
|