7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
63 lines
1.7 KiB
Go
63 lines
1.7 KiB
Go
// Package bin implements binary serialization and deserialization for TL,
|
|
// providing Buffer that can decode and encode basic Type Language types.
|
|
//
|
|
// This package is not intended to be used directly.
|
|
//
|
|
// Ref:
|
|
// - https://core.telegram.org/mtproto/serialize
|
|
// - https://core.telegram.org/mtproto/TL-abstract-types
|
|
package bin
|
|
|
|
// Basic TL types.
|
|
const (
|
|
TypeIntID = 0xa8509bda // int = Int (0xa8509bda)
|
|
TypeLongID = 0x22076cba // long = Long (0x22076cba)
|
|
TypeDoubleID = 0x2210c154 // double = Double (0x2210c154)
|
|
TypeStringID = 0xb5286e24 // string = String (0xb5286e24)
|
|
TypeVector = 0x1cb5c415 // vector {t:Type} # [ t ] = Vector t
|
|
TypeBytes = 0xe937bb82 // bytes#e937bb82 = Bytes
|
|
|
|
TypeTrue = 0x997275b5 // boolTrue#997275b5 = Bool
|
|
TypeFalse = 0xbc799737 // boolFalse#bc799737 = Bool
|
|
)
|
|
|
|
// Word represents 4-byte sequence.
|
|
// Values in TL are generally aligned to Word.
|
|
const Word = 4
|
|
|
|
func nearestPaddedValueLength(l int) int {
|
|
n := Word * (l / Word)
|
|
if n < l {
|
|
n += Word
|
|
}
|
|
return n
|
|
}
|
|
|
|
// Encoder can encode it's binary form to Buffer.
|
|
type Encoder interface {
|
|
Encode(b *Buffer) error
|
|
}
|
|
|
|
// Decoder can decode it's binary form from Buffer.
|
|
type Decoder interface {
|
|
Decode(b *Buffer) error
|
|
}
|
|
|
|
// BareEncoder can encode it's binary form to Buffer.
|
|
// BareEncoder is like Encoder, but encodes object as bare.
|
|
type BareEncoder interface {
|
|
EncodeBare(b *Buffer) error
|
|
}
|
|
|
|
// BareDecoder can decode it's binary form from Buffer.
|
|
// BareEncoder is like Encoder, but decodes object as bare.
|
|
type BareDecoder interface {
|
|
DecodeBare(b *Buffer) error
|
|
}
|
|
|
|
// Object wraps Decoder and Encoder interface and represents TL Object.
|
|
type Object interface {
|
|
Decoder
|
|
Encoder
|
|
}
|