Documentation ¶
Index ¶
- Constants
- func Base32CharToInt(in byte) int
- func ByteToBase32Char(in byte) byte
- func IntToBase32Char(in int) byte
- type Base128Encoder
- func (b *Base128Encoder) Code() byte
- func (b *Base128Encoder) Decode(data []byte) ([]byte, error)
- func (b *Base128Encoder) Encode(src []byte) []byte
- func (b *Base128Encoder) Name() string
- func (b *Base128Encoder) Ratio() float64
- func (b *Base128Encoder) String() string
- func (b *Base128Encoder) TestPatterns() [][]byte
- type Base192Encoder
- func (b *Base192Encoder) Code() byte
- func (b *Base192Encoder) Decode(src []byte) ([]byte, error)
- func (b *Base192Encoder) Encode(src []byte) []byte
- func (b *Base192Encoder) Name() string
- func (b *Base192Encoder) Ratio() float64
- func (b *Base192Encoder) String() string
- func (b *Base192Encoder) TestPatterns() [][]byte
- type Base32Encoder
- func (b *Base32Encoder) Code() byte
- func (b *Base32Encoder) Decode(data []byte) ([]byte, error)
- func (b *Base32Encoder) Encode(data []byte) []byte
- func (b *Base32Encoder) Name() string
- func (b *Base32Encoder) Ratio() float64
- func (b *Base32Encoder) String() string
- func (b *Base32Encoder) TestPatterns() [][]byte
- type Base64Encoder
- func (b *Base64Encoder) Code() byte
- func (b *Base64Encoder) Decode(data []byte) ([]byte, error)
- func (b *Base64Encoder) Encode(data []byte) []byte
- func (b *Base64Encoder) Name() string
- func (b *Base64Encoder) Ratio() float64
- func (b *Base64Encoder) String() string
- func (b *Base64Encoder) TestPatterns() [][]byte
- type Base64uEncoder
- func (b *Base64uEncoder) Code() byte
- func (b *Base64uEncoder) Decode(data []byte) ([]byte, error)
- func (b *Base64uEncoder) Encode(data []byte) []byte
- func (b *Base64uEncoder) Name() string
- func (b *Base64uEncoder) Ratio() float64
- func (b *Base64uEncoder) String() string
- func (b *Base64uEncoder) TestPatterns() [][]byte
- type Base85Encoder
- func (b *Base85Encoder) Code() byte
- func (b *Base85Encoder) Decode(data []byte) ([]byte, error)
- func (b *Base85Encoder) Encode(data []byte) []byte
- func (b *Base85Encoder) Name() string
- func (b *Base85Encoder) Ratio() float64
- func (b *Base85Encoder) String() string
- func (b *Base85Encoder) TestPatterns() [][]byte
- type Base91Encoder
- func (b *Base91Encoder) Code() byte
- func (b *Base91Encoder) Decode(data []byte) ([]byte, error)
- func (b *Base91Encoder) Encode(data []byte) []byte
- func (b *Base91Encoder) Name() string
- func (b *Base91Encoder) Ratio() float64
- func (b *Base91Encoder) String() string
- func (b *Base91Encoder) TestPatterns() [][]byte
- type Encoder
- type RawEncoder
Constants ¶
const MinAsciiCode = 255 - 192
Base192 could take the top 192 characters (leaving out the bottom 32, which are usually control characters). Base192 encoding could achieve near-raw efficiency, as it encodes 7.5 bits / byte. Or, in other words: every 15 bytes get encoded into 16 octets. This yields an appropriate 6.66% encoding loss.
Variables ¶
This section is empty.
Functions ¶
func Base32CharToInt ¶
func ByteToBase32Char ¶
func IntToBase32Char ¶
IntToBase32Char will covert the given number into a letter from the Base32 alphabet. Or to put it in another term It will return the letter from the Base32 alphabet at a position given by the argument. If the number is larger than 31, it will "wrap over" and work on reminder of the parameter divided by 32.
Types ¶
type Base128Encoder ¶
type Base128Encoder struct { }
Base128Encoder encodes 7 bytes to 8 characters
func (*Base128Encoder) Code ¶
func (b *Base128Encoder) Code() byte
func (*Base128Encoder) Encode ¶
func (b *Base128Encoder) Encode(src []byte) []byte
func (*Base128Encoder) Name ¶
func (b *Base128Encoder) Name() string
func (*Base128Encoder) Ratio ¶
func (b *Base128Encoder) Ratio() float64
func (*Base128Encoder) String ¶
func (b *Base128Encoder) String() string
func (*Base128Encoder) TestPatterns ¶
func (b *Base128Encoder) TestPatterns() [][]byte
type Base192Encoder ¶
type Base192Encoder struct { }
Base128Encoder encodes 7.5 bits to 1 octet
func (*Base192Encoder) Code ¶
func (b *Base192Encoder) Code() byte
func (*Base192Encoder) Encode ¶
func (b *Base192Encoder) Encode(src []byte) []byte
func (*Base192Encoder) Name ¶
func (b *Base192Encoder) Name() string
func (*Base192Encoder) Ratio ¶
func (b *Base192Encoder) Ratio() float64
func (*Base192Encoder) String ¶
func (b *Base192Encoder) String() string
func (*Base192Encoder) TestPatterns ¶
func (b *Base192Encoder) TestPatterns() [][]byte
type Base32Encoder ¶
type Base32Encoder struct { }
Base32Encoder encodes 5 bytes to 8 characters. Good because it's not case-sensitive.
func (*Base32Encoder) Code ¶
func (b *Base32Encoder) Code() byte
func (*Base32Encoder) Encode ¶
func (b *Base32Encoder) Encode(data []byte) []byte
func (*Base32Encoder) Name ¶
func (b *Base32Encoder) Name() string
func (*Base32Encoder) Ratio ¶
func (b *Base32Encoder) Ratio() float64
func (*Base32Encoder) String ¶
func (b *Base32Encoder) String() string
func (*Base32Encoder) TestPatterns ¶
func (b *Base32Encoder) TestPatterns() [][]byte
type Base64Encoder ¶
type Base64Encoder struct { }
Base64Encoder encodes 3 bytes to 4 characters
func (*Base64Encoder) Code ¶
func (b *Base64Encoder) Code() byte
func (*Base64Encoder) Encode ¶
func (b *Base64Encoder) Encode(data []byte) []byte
func (*Base64Encoder) Name ¶
func (b *Base64Encoder) Name() string
func (*Base64Encoder) Ratio ¶
func (b *Base64Encoder) Ratio() float64
func (*Base64Encoder) String ¶
func (b *Base64Encoder) String() string
func (*Base64Encoder) TestPatterns ¶
func (b *Base64Encoder) TestPatterns() [][]byte
type Base64uEncoder ¶
type Base64uEncoder struct { }
Base64uEncoder encodes 3 bytes to 4 characters and uses an alternative character map.
func (*Base64uEncoder) Code ¶
func (b *Base64uEncoder) Code() byte
func (*Base64uEncoder) Encode ¶
func (b *Base64uEncoder) Encode(data []byte) []byte
func (*Base64uEncoder) Name ¶
func (b *Base64uEncoder) Name() string
func (*Base64uEncoder) Ratio ¶
func (b *Base64uEncoder) Ratio() float64
func (*Base64uEncoder) String ¶
func (b *Base64uEncoder) String() string
func (*Base64uEncoder) TestPatterns ¶
func (b *Base64uEncoder) TestPatterns() [][]byte
type Base85Encoder ¶
type Base85Encoder struct { }
func (*Base85Encoder) Code ¶
func (b *Base85Encoder) Code() byte
func (*Base85Encoder) Encode ¶
func (b *Base85Encoder) Encode(data []byte) []byte
func (*Base85Encoder) Name ¶
func (b *Base85Encoder) Name() string
func (*Base85Encoder) Ratio ¶
func (b *Base85Encoder) Ratio() float64
func (*Base85Encoder) String ¶
func (b *Base85Encoder) String() string
func (*Base85Encoder) TestPatterns ¶
func (b *Base85Encoder) TestPatterns() [][]byte
type Base91Encoder ¶
type Base91Encoder struct { }
Base91Encoder when encoding, each group of 13 bits is converted into 2 radix-91 digits.
func (*Base91Encoder) Code ¶
func (b *Base91Encoder) Code() byte
func (*Base91Encoder) Encode ¶
func (b *Base91Encoder) Encode(data []byte) []byte
func (*Base91Encoder) Name ¶
func (b *Base91Encoder) Name() string
func (*Base91Encoder) Ratio ¶
func (b *Base91Encoder) Ratio() float64
func (*Base91Encoder) String ¶
func (b *Base91Encoder) String() string
func (*Base91Encoder) TestPatterns ¶
func (b *Base91Encoder) TestPatterns() [][]byte
type Encoder ¶
type Encoder interface { // Name is the user-friendly name of this encoder Name() string // Code represends the short (one-letter) code for the encoder Code() byte // Encode will take an array of bytes and encode it using this encoder Encode([]byte) []byte // Decode is the reverse proces of encoding Decode([]byte) ([]byte, error) // Return a list of test patterns for the specified encoding TestPatterns() [][]byte // Expansion ratio; e.g. the encoded array is this times longer than the original input Ratio() float64 }
var ( Base32Encoding Encoder = &Base32Encoder{} Base64Encoding Encoder = &Base64Encoder{} Base64uEncoding Encoder = &Base64uEncoder{} Base85Encoding Encoder = &Base85Encoder{} Base91Encoding Encoder = &Base91Encoder{} Base128Encoding Encoder = &Base128Encoder{} Base192Encoding Encoder = &Base192Encoder{} RawEncoding Encoder = &RawEncoder{} )
Declare a list of encodings
type RawEncoder ¶
type RawEncoder struct { }
RawEncoder encodes 8 bytes to 8 characters -- it simply does not do any translation whatsoever
func (*RawEncoder) Code ¶
func (b *RawEncoder) Code() byte
func (*RawEncoder) Encode ¶
func (b *RawEncoder) Encode(data []byte) []byte
func (*RawEncoder) Name ¶
func (b *RawEncoder) Name() string
func (*RawEncoder) Ratio ¶
func (b *RawEncoder) Ratio() float64
func (*RawEncoder) String ¶
func (b *RawEncoder) String() string
func (*RawEncoder) TestPatterns ¶
func (b *RawEncoder) TestPatterns() [][]byte