gotd: update to layer 224

This commit is contained in:
Tulir Asokan
2026-04-01 21:08:49 +03:00
parent 7630340ffc
commit 770b3b8d8c
77 changed files with 10606 additions and 703 deletions
+76 -28
View File
@@ -31,7 +31,7 @@ var (
_ = tdjson.Encoder{}
)
// MessageReplyHeader represents TL type `messageReplyHeader#6917560b`.
// MessageReplyHeader represents TL type `messageReplyHeader#1b97dd66`.
// Message replies and thread¹ information
//
// Links:
@@ -107,10 +107,14 @@ type MessageReplyHeader struct {
//
// Use SetTodoItemID and GetTodoItemID helpers.
TodoItemID int
// PollOption field of MessageReplyHeader.
//
// Use SetPollOption and GetPollOption helpers.
PollOption []byte
}
// MessageReplyHeaderTypeID is TL type id of MessageReplyHeader.
const MessageReplyHeaderTypeID = 0x6917560b
const MessageReplyHeaderTypeID = 0x1b97dd66
// construct implements constructor of MessageReplyHeaderClass.
func (m MessageReplyHeader) construct() MessageReplyHeaderClass { return &m }
@@ -168,6 +172,9 @@ func (m *MessageReplyHeader) Zero() bool {
if !(m.TodoItemID == 0) {
return false
}
if !(m.PollOption == nil) {
return false
}
return true
}
@@ -195,6 +202,7 @@ func (m *MessageReplyHeader) FillFrom(from interface {
GetQuoteEntities() (value []MessageEntityClass, ok bool)
GetQuoteOffset() (value int, ok bool)
GetTodoItemID() (value int, ok bool)
GetPollOption() (value []byte, ok bool)
}) {
m.ReplyToScheduled = from.GetReplyToScheduled()
m.ForumTopic = from.GetForumTopic()
@@ -235,6 +243,10 @@ func (m *MessageReplyHeader) FillFrom(from interface {
m.TodoItemID = val
}
if val, ok := from.GetPollOption(); ok {
m.PollOption = val
}
}
// TypeID returns type id in TL schema.
@@ -320,6 +332,11 @@ func (m *MessageReplyHeader) TypeInfo() tdp.Type {
SchemaName: "todo_item_id",
Null: !m.Flags.Has(11),
},
{
Name: "PollOption",
SchemaName: "poll_option",
Null: !m.Flags.Has(12),
},
}
return typ
}
@@ -362,12 +379,15 @@ func (m *MessageReplyHeader) SetFlags() {
if !(m.TodoItemID == 0) {
m.Flags.Set(11)
}
if !(m.PollOption == nil) {
m.Flags.Set(12)
}
}
// Encode implements bin.Encoder.
func (m *MessageReplyHeader) Encode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageReplyHeader#6917560b as nil")
return fmt.Errorf("can't encode messageReplyHeader#1b97dd66 as nil")
}
b.PutID(MessageReplyHeaderTypeID)
return m.EncodeBare(b)
@@ -376,34 +396,34 @@ func (m *MessageReplyHeader) Encode(b *bin.Buffer) error {
// EncodeBare implements bin.BareEncoder.
func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't encode messageReplyHeader#6917560b as nil")
return fmt.Errorf("can't encode messageReplyHeader#1b97dd66 as nil")
}
m.SetFlags()
if err := m.Flags.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field flags: %w", err)
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field flags: %w", err)
}
if m.Flags.Has(4) {
b.PutInt(m.ReplyToMsgID)
}
if m.Flags.Has(0) {
if m.ReplyToPeerID == nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_to_peer_id is nil")
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_to_peer_id is nil")
}
if err := m.ReplyToPeerID.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_to_peer_id: %w", err)
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_to_peer_id: %w", err)
}
}
if m.Flags.Has(5) {
if err := m.ReplyFrom.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_from: %w", err)
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_from: %w", err)
}
}
if m.Flags.Has(8) {
if m.ReplyMedia == nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_media is nil")
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_media is nil")
}
if err := m.ReplyMedia.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field reply_media: %w", err)
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field reply_media: %w", err)
}
}
if m.Flags.Has(1) {
@@ -416,10 +436,10 @@ func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error {
b.PutVectorHeader(len(m.QuoteEntities))
for idx, v := range m.QuoteEntities {
if v == nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field quote_entities element with index %d is nil", idx)
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field quote_entities element with index %d is nil", idx)
}
if err := v.Encode(b); err != nil {
return fmt.Errorf("unable to encode messageReplyHeader#6917560b: field quote_entities element with index %d: %w", idx, err)
return fmt.Errorf("unable to encode messageReplyHeader#1b97dd66: field quote_entities element with index %d: %w", idx, err)
}
}
}
@@ -429,16 +449,19 @@ func (m *MessageReplyHeader) EncodeBare(b *bin.Buffer) error {
if m.Flags.Has(11) {
b.PutInt(m.TodoItemID)
}
if m.Flags.Has(12) {
b.PutBytes(m.PollOption)
}
return nil
}
// Decode implements bin.Decoder.
func (m *MessageReplyHeader) Decode(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageReplyHeader#6917560b to nil")
return fmt.Errorf("can't decode messageReplyHeader#1b97dd66 to nil")
}
if err := b.ConsumeID(MessageReplyHeaderTypeID); err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: %w", err)
}
return m.DecodeBare(b)
}
@@ -446,11 +469,11 @@ func (m *MessageReplyHeader) Decode(b *bin.Buffer) error {
// DecodeBare implements bin.BareDecoder.
func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
if m == nil {
return fmt.Errorf("can't decode messageReplyHeader#6917560b to nil")
return fmt.Errorf("can't decode messageReplyHeader#1b97dd66 to nil")
}
{
if err := m.Flags.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field flags: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field flags: %w", err)
}
}
m.ReplyToScheduled = m.Flags.Has(2)
@@ -459,47 +482,47 @@ func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
if m.Flags.Has(4) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_to_msg_id: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_to_msg_id: %w", err)
}
m.ReplyToMsgID = value
}
if m.Flags.Has(0) {
value, err := DecodePeer(b)
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_to_peer_id: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_to_peer_id: %w", err)
}
m.ReplyToPeerID = value
}
if m.Flags.Has(5) {
if err := m.ReplyFrom.Decode(b); err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_from: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_from: %w", err)
}
}
if m.Flags.Has(8) {
value, err := DecodeMessageMedia(b)
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_media: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_media: %w", err)
}
m.ReplyMedia = value
}
if m.Flags.Has(1) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field reply_to_top_id: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field reply_to_top_id: %w", err)
}
m.ReplyToTopID = value
}
if m.Flags.Has(6) {
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_text: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_text: %w", err)
}
m.QuoteText = value
}
if m.Flags.Has(7) {
headerLen, err := b.VectorHeader()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_entities: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_entities: %w", err)
}
if headerLen > 0 {
@@ -508,7 +531,7 @@ func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
for idx := 0; idx < headerLen; idx++ {
value, err := DecodeMessageEntity(b)
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_entities: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_entities: %w", err)
}
m.QuoteEntities = append(m.QuoteEntities, value)
}
@@ -516,17 +539,24 @@ func (m *MessageReplyHeader) DecodeBare(b *bin.Buffer) error {
if m.Flags.Has(10) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field quote_offset: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field quote_offset: %w", err)
}
m.QuoteOffset = value
}
if m.Flags.Has(11) {
value, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#6917560b: field todo_item_id: %w", err)
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field todo_item_id: %w", err)
}
m.TodoItemID = value
}
if m.Flags.Has(12) {
value, err := b.Bytes()
if err != nil {
return fmt.Errorf("unable to decode messageReplyHeader#1b97dd66: field poll_option: %w", err)
}
m.PollOption = value
}
return nil
}
@@ -749,6 +779,24 @@ func (m *MessageReplyHeader) GetTodoItemID() (value int, ok bool) {
return m.TodoItemID, true
}
// SetPollOption sets value of PollOption conditional field.
func (m *MessageReplyHeader) SetPollOption(value []byte) {
m.Flags.Set(12)
m.PollOption = value
}
// GetPollOption returns value of PollOption conditional field and
// boolean which is true if field was set.
func (m *MessageReplyHeader) GetPollOption() (value []byte, ok bool) {
if m == nil {
return
}
if !m.Flags.Has(12) {
return value, false
}
return m.PollOption, true
}
// MapQuoteEntities returns field QuoteEntities wrapped in MessageEntityClassArray helper.
func (m *MessageReplyHeader) MapQuoteEntities() (value MessageEntityClassArray, ok bool) {
if !m.Flags.Has(7) {
@@ -941,7 +989,7 @@ const MessageReplyHeaderClassName = "MessageReplyHeader"
// panic(err)
// }
// switch v := g.(type) {
// case *tg.MessageReplyHeader: // messageReplyHeader#6917560b
// case *tg.MessageReplyHeader: // messageReplyHeader#1b97dd66
// case *tg.MessageReplyStoryHeader: // messageReplyStoryHeader#e5af939
// default: panic(v)
// }
@@ -972,7 +1020,7 @@ func DecodeMessageReplyHeader(buf *bin.Buffer) (MessageReplyHeaderClass, error)
}
switch id {
case MessageReplyHeaderTypeID:
// Decoding messageReplyHeader#6917560b.
// Decoding messageReplyHeader#1b97dd66.
v := MessageReplyHeader{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode MessageReplyHeaderClass: %w", err)