gotd: update to layer 223

This commit is contained in:
Tulir Asokan
2026-03-03 15:13:10 +02:00
parent 189dbdfc52
commit e5914196c5
107 changed files with 19658 additions and 1505 deletions
+424
View File
@@ -3801,6 +3801,422 @@ func (m *MessageEntityBlockquote) GetLength() (value int) {
return m.Length
}
// MessageEntityFormattedDate represents TL type `messageEntityFormattedDate#904ac7c7`.
//
// See https://core.telegram.org/constructor/messageEntityFormattedDate for reference.
type MessageEntityFormattedDate struct {
// Flags field of MessageEntityFormattedDate.
Flags bin.Fields
// Relative field of MessageEntityFormattedDate.
Relative bool
// ShortTime field of MessageEntityFormattedDate.
ShortTime bool
// LongTime field of MessageEntityFormattedDate.
LongTime bool
// ShortDate field of MessageEntityFormattedDate.
ShortDate bool
// LongDate field of MessageEntityFormattedDate.
LongDate bool
// DayOfWeek field of MessageEntityFormattedDate.
DayOfWeek bool
// Offset field of MessageEntityFormattedDate.
Offset int
// Length field of MessageEntityFormattedDate.
Length int
// Date field of MessageEntityFormattedDate.
Date int
}
// MessageEntityFormattedDateTypeID is TL type id of MessageEntityFormattedDate.
const MessageEntityFormattedDateTypeID = 0x904ac7c7
// construct implements constructor of MessageEntityClass.
func (m MessageEntityFormattedDate) construct() MessageEntityClass { return &m }
// Ensuring interfaces in compile-time for MessageEntityFormattedDate.
var (
_ bin.Encoder = &MessageEntityFormattedDate{}
_ bin.Decoder = &MessageEntityFormattedDate{}
_ bin.BareEncoder = &MessageEntityFormattedDate{}
_ bin.BareDecoder = &MessageEntityFormattedDate{}
_ MessageEntityClass = &MessageEntityFormattedDate{}
)
func (m *MessageEntityFormattedDate) Zero() bool {
if m == nil {
return true
}
if !(m.Flags.Zero()) {
return false
}
if !(m.Relative == false) {
return false
}
if !(m.ShortTime == false) {
return false
}
if !(m.LongTime == false) {
return false
}
if !(m.ShortDate == false) {
return false
}
if !(m.LongDate == false) {
return false
}
if !(m.DayOfWeek == false) {
return false
}
if !(m.Offset == 0) {
return false
}
if !(m.Length == 0) {
return false
}
if !(m.Date == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (m *MessageEntityFormattedDate) String() string {
if m == nil {
return "MessageEntityFormattedDate(nil)"
}
type Alias MessageEntityFormattedDate
return fmt.Sprintf("MessageEntityFormattedDate%+v", Alias(*m))
}
// FillFrom fills MessageEntityFormattedDate from given interface.
func (m *MessageEntityFormattedDate) FillFrom(from interface {
GetRelative() (value bool)
GetShortTime() (value bool)
GetLongTime() (value bool)
GetShortDate() (value bool)
GetLongDate() (value bool)
GetDayOfWeek() (value bool)
GetOffset() (value int)
GetLength() (value int)
GetDate() (value int)
}) {
m.Relative = from.GetRelative()
m.ShortTime = from.GetShortTime()
m.LongTime = from.GetLongTime()
m.ShortDate = from.GetShortDate()
m.LongDate = from.GetLongDate()
m.DayOfWeek = from.GetDayOfWeek()
m.Offset = from.GetOffset()
m.Length = from.GetLength()
m.Date = from.GetDate()
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*MessageEntityFormattedDate) TypeID() uint32 {
return MessageEntityFormattedDateTypeID
}
// TypeName returns name of type in TL schema.
func (*MessageEntityFormattedDate) TypeName() string {
return "messageEntityFormattedDate"
}
// TypeInfo returns info about TL type.
func (m *MessageEntityFormattedDate) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "messageEntityFormattedDate",
ID: MessageEntityFormattedDateTypeID,
}
if m == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Relative",
SchemaName: "relative",
Null: !m.Flags.Has(0),
},
{
Name: "ShortTime",
SchemaName: "short_time",
Null: !m.Flags.Has(1),
},
{
Name: "LongTime",
SchemaName: "long_time",
Null: !m.Flags.Has(2),
},
{
Name: "ShortDate",
SchemaName: "short_date",
Null: !m.Flags.Has(3),
},
{
Name: "LongDate",
SchemaName: "long_date",
Null: !m.Flags.Has(4),
},
{
Name: "DayOfWeek",
SchemaName: "day_of_week",
Null: !m.Flags.Has(5),
},
{
Name: "Offset",
SchemaName: "offset",
},
{
Name: "Length",
SchemaName: "length",
},
{
Name: "Date",
SchemaName: "date",
},
}
return typ
}
// SetFlags sets flags for non-zero fields.
func (m *MessageEntityFormattedDate) SetFlags() {
if !(m.Relative == false) {
m.Flags.Set(0)
}
if !(m.ShortTime == false) {
m.Flags.Set(1)
}
if !(m.LongTime == false) {
m.Flags.Set(2)
}
if !(m.ShortDate == false) {
m.Flags.Set(3)
}
if !(m.LongDate == false) {
m.Flags.Set(4)
}
if !(m.DayOfWeek == false) {
m.Flags.Set(5)
}
}
// Encode implements bin.Encoder.
func (m *MessageEntityFormattedDate) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityFormattedDate#904ac7c7 as nil")
}
b.PutID(MessageEntityFormattedDateTypeID)
return m.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (m *MessageEntityFormattedDate) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageEntityFormattedDate#904ac7c7 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageEntityFormattedDate#904ac7c7: field flags: %w", err)
}
b.PutInt(m.Offset)
b.PutInt(m.Length)
b.PutInt(m.Date)
return nil
}
// Decode implements bin.Decoder.
func (m *MessageEntityFormattedDate) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityFormattedDate#904ac7c7 to nil")
}
if err := b.ConsumeID(MessageEntityFormattedDateTypeID); err != nil {
return fmt.Errorf("unable to decode messageEntityFormattedDate#904ac7c7: %w", err)
}
return m.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (m *MessageEntityFormattedDate) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageEntityFormattedDate#904ac7c7 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageEntityFormattedDate#904ac7c7: field flags: %w", err)
}
}
m.Relative = m.Flags.Has(0)
m.ShortTime = m.Flags.Has(1)
m.LongTime = m.Flags.Has(2)
m.ShortDate = m.Flags.Has(3)
m.LongDate = m.Flags.Has(4)
m.DayOfWeek = m.Flags.Has(5)
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityFormattedDate#904ac7c7: field offset: %w", err)
}
m.Offset = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityFormattedDate#904ac7c7: field length: %w", err)
}
m.Length = value
}
{
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageEntityFormattedDate#904ac7c7: field date: %w", err)
}
m.Date = value
}
return nil
}
// SetRelative sets value of Relative conditional field.
func (m *MessageEntityFormattedDate) SetRelative(value bool) {
if value {
m.Flags.Set(0)
m.Relative = true
} else {
m.Flags.Unset(0)
m.Relative = false
}
}
// GetRelative returns value of Relative conditional field.
func (m *MessageEntityFormattedDate) GetRelative() (value bool) {
if m == nil {
return
}
return m.Flags.Has(0)
}
// SetShortTime sets value of ShortTime conditional field.
func (m *MessageEntityFormattedDate) SetShortTime(value bool) {
if value {
m.Flags.Set(1)
m.ShortTime = true
} else {
m.Flags.Unset(1)
m.ShortTime = false
}
}
// GetShortTime returns value of ShortTime conditional field.
func (m *MessageEntityFormattedDate) GetShortTime() (value bool) {
if m == nil {
return
}
return m.Flags.Has(1)
}
// SetLongTime sets value of LongTime conditional field.
func (m *MessageEntityFormattedDate) SetLongTime(value bool) {
if value {
m.Flags.Set(2)
m.LongTime = true
} else {
m.Flags.Unset(2)
m.LongTime = false
}
}
// GetLongTime returns value of LongTime conditional field.
func (m *MessageEntityFormattedDate) GetLongTime() (value bool) {
if m == nil {
return
}
return m.Flags.Has(2)
}
// SetShortDate sets value of ShortDate conditional field.
func (m *MessageEntityFormattedDate) SetShortDate(value bool) {
if value {
m.Flags.Set(3)
m.ShortDate = true
} else {
m.Flags.Unset(3)
m.ShortDate = false
}
}
// GetShortDate returns value of ShortDate conditional field.
func (m *MessageEntityFormattedDate) GetShortDate() (value bool) {
if m == nil {
return
}
return m.Flags.Has(3)
}
// SetLongDate sets value of LongDate conditional field.
func (m *MessageEntityFormattedDate) SetLongDate(value bool) {
if value {
m.Flags.Set(4)
m.LongDate = true
} else {
m.Flags.Unset(4)
m.LongDate = false
}
}
// GetLongDate returns value of LongDate conditional field.
func (m *MessageEntityFormattedDate) GetLongDate() (value bool) {
if m == nil {
return
}
return m.Flags.Has(4)
}
// SetDayOfWeek sets value of DayOfWeek conditional field.
func (m *MessageEntityFormattedDate) SetDayOfWeek(value bool) {
if value {
m.Flags.Set(5)
m.DayOfWeek = true
} else {
m.Flags.Unset(5)
m.DayOfWeek = false
}
}
// GetDayOfWeek returns value of DayOfWeek conditional field.
func (m *MessageEntityFormattedDate) GetDayOfWeek() (value bool) {
if m == nil {
return
}
return m.Flags.Has(5)
}
// GetOffset returns value of Offset field.
func (m *MessageEntityFormattedDate) GetOffset() (value int) {
if m == nil {
return
}
return m.Offset
}
// GetLength returns value of Length field.
func (m *MessageEntityFormattedDate) GetLength() (value int) {
if m == nil {
return
}
return m.Length
}
// GetDate returns value of Date field.
func (m *MessageEntityFormattedDate) GetDate() (value int) {
if m == nil {
return
}
return m.Date
}
// MessageEntityClassName is schema name of MessageEntityClass.
const MessageEntityClassName = "MessageEntity"
@@ -3836,6 +4252,7 @@ const MessageEntityClassName = "MessageEntity"
// case *tg.MessageEntitySpoiler: // messageEntitySpoiler#32ca960f
// case *tg.MessageEntityCustomEmoji: // messageEntityCustomEmoji#c8cf05f8
// case *tg.MessageEntityBlockquote: // messageEntityBlockquote#f1ccaaac
// case *tg.MessageEntityFormattedDate: // messageEntityFormattedDate#904ac7c7
// default: panic(v)
// }
type MessageEntityClass interface {
@@ -4023,6 +4440,13 @@ func DecodeMessageEntity(buf *bin.Buffer) (MessageEntityClass, error) {
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err)
}
return &v, nil
case MessageEntityFormattedDateTypeID:
// Decoding messageEntityFormattedDate#904ac7c7.
v := MessageEntityFormattedDate{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode MessageEntityClass: %w", bin.NewUnexpectedID(id))
}