package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"github.com/gotd/td/bin"
"github.com/gotd/td/tdjson"
"github.com/gotd/td/tdp"
"github.com/gotd/td/tgerr"
)
var (
_ = bin .Buffer {}
_ = context .Background ()
_ = fmt .Stringer (nil )
_ = strings .Builder {}
_ = errors .Is
_ = multierr .AppendInto
_ = sort .Ints
_ = tdp .Format
_ = tgerr .Error {}
_ = tdjson .Encoder {}
)
type SavedDialog struct {
Flags bin .Fields
Pinned bool
Peer PeerClass
TopMessage int
}
const SavedDialogTypeID = 0xbd87cb6c
func (s SavedDialog ) construct () SavedDialogClass { return &s }
var (
_ bin .Encoder = &SavedDialog {}
_ bin .Decoder = &SavedDialog {}
_ bin .BareEncoder = &SavedDialog {}
_ bin .BareDecoder = &SavedDialog {}
_ SavedDialogClass = &SavedDialog {}
)
func (s *SavedDialog ) Zero () bool {
if s == nil {
return true
}
if !(s .Flags .Zero ()) {
return false
}
if !(s .Pinned == false ) {
return false
}
if !(s .Peer == nil ) {
return false
}
if !(s .TopMessage == 0 ) {
return false
}
return true
}
func (s *SavedDialog ) String () string {
if s == nil {
return "SavedDialog(nil)"
}
type Alias SavedDialog
return fmt .Sprintf ("SavedDialog%+v" , Alias (*s ))
}
func (s *SavedDialog ) FillFrom (from interface {
GetPinned () (value bool )
GetPeer () (value PeerClass )
GetTopMessage () (value int )
}) {
s .Pinned = from .GetPinned ()
s .Peer = from .GetPeer ()
s .TopMessage = from .GetTopMessage ()
}
func (*SavedDialog ) TypeID () uint32 {
return SavedDialogTypeID
}
func (*SavedDialog ) TypeName () string {
return "savedDialog"
}
func (s *SavedDialog ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "savedDialog" ,
ID : SavedDialogTypeID ,
}
if s == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Pinned" ,
SchemaName : "pinned" ,
Null : !s .Flags .Has (2 ),
},
{
Name : "Peer" ,
SchemaName : "peer" ,
},
{
Name : "TopMessage" ,
SchemaName : "top_message" ,
},
}
return typ
}
func (s *SavedDialog ) SetFlags () {
if !(s .Pinned == false ) {
s .Flags .Set (2 )
}
}
func (s *SavedDialog ) Encode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode savedDialog#bd87cb6c as nil" )
}
b .PutID (SavedDialogTypeID )
return s .EncodeBare (b )
}
func (s *SavedDialog ) EncodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode savedDialog#bd87cb6c as nil" )
}
s .SetFlags ()
if err := s .Flags .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode savedDialog#bd87cb6c: field flags: %w" , err )
}
if s .Peer == nil {
return fmt .Errorf ("unable to encode savedDialog#bd87cb6c: field peer is nil" )
}
if err := s .Peer .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode savedDialog#bd87cb6c: field peer: %w" , err )
}
b .PutInt (s .TopMessage )
return nil
}
func (s *SavedDialog ) Decode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode savedDialog#bd87cb6c to nil" )
}
if err := b .ConsumeID (SavedDialogTypeID ); err != nil {
return fmt .Errorf ("unable to decode savedDialog#bd87cb6c: %w" , err )
}
return s .DecodeBare (b )
}
func (s *SavedDialog ) DecodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode savedDialog#bd87cb6c to nil" )
}
{
if err := s .Flags .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode savedDialog#bd87cb6c: field flags: %w" , err )
}
}
s .Pinned = s .Flags .Has (2 )
{
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode savedDialog#bd87cb6c: field peer: %w" , err )
}
s .Peer = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode savedDialog#bd87cb6c: field top_message: %w" , err )
}
s .TopMessage = value
}
return nil
}
func (s *SavedDialog ) SetPinned (value bool ) {
if value {
s .Flags .Set (2 )
s .Pinned = true
} else {
s .Flags .Unset (2 )
s .Pinned = false
}
}
func (s *SavedDialog ) GetPinned () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (2 )
}
func (s *SavedDialog ) GetPeer () (value PeerClass ) {
if s == nil {
return
}
return s .Peer
}
func (s *SavedDialog ) GetTopMessage () (value int ) {
if s == nil {
return
}
return s .TopMessage
}
type MonoForumDialog struct {
Flags bin .Fields
UnreadMark bool
NopaidMessagesException bool
Peer PeerClass
TopMessage int
ReadInboxMaxID int
ReadOutboxMaxID int
UnreadCount int
UnreadReactionsCount int
Draft DraftMessageClass
}
const MonoForumDialogTypeID = 0x64407ea7
func (m MonoForumDialog ) construct () SavedDialogClass { return &m }
var (
_ bin .Encoder = &MonoForumDialog {}
_ bin .Decoder = &MonoForumDialog {}
_ bin .BareEncoder = &MonoForumDialog {}
_ bin .BareDecoder = &MonoForumDialog {}
_ SavedDialogClass = &MonoForumDialog {}
)
func (m *MonoForumDialog ) Zero () bool {
if m == nil {
return true
}
if !(m .Flags .Zero ()) {
return false
}
if !(m .UnreadMark == false ) {
return false
}
if !(m .NopaidMessagesException == false ) {
return false
}
if !(m .Peer == nil ) {
return false
}
if !(m .TopMessage == 0 ) {
return false
}
if !(m .ReadInboxMaxID == 0 ) {
return false
}
if !(m .ReadOutboxMaxID == 0 ) {
return false
}
if !(m .UnreadCount == 0 ) {
return false
}
if !(m .UnreadReactionsCount == 0 ) {
return false
}
if !(m .Draft == nil ) {
return false
}
return true
}
func (m *MonoForumDialog ) String () string {
if m == nil {
return "MonoForumDialog(nil)"
}
type Alias MonoForumDialog
return fmt .Sprintf ("MonoForumDialog%+v" , Alias (*m ))
}
func (m *MonoForumDialog ) FillFrom (from interface {
GetUnreadMark () (value bool )
GetNopaidMessagesException () (value bool )
GetPeer () (value PeerClass )
GetTopMessage () (value int )
GetReadInboxMaxID () (value int )
GetReadOutboxMaxID () (value int )
GetUnreadCount () (value int )
GetUnreadReactionsCount () (value int )
GetDraft () (value DraftMessageClass , ok bool )
}) {
m .UnreadMark = from .GetUnreadMark ()
m .NopaidMessagesException = from .GetNopaidMessagesException ()
m .Peer = from .GetPeer ()
m .TopMessage = from .GetTopMessage ()
m .ReadInboxMaxID = from .GetReadInboxMaxID ()
m .ReadOutboxMaxID = from .GetReadOutboxMaxID ()
m .UnreadCount = from .GetUnreadCount ()
m .UnreadReactionsCount = from .GetUnreadReactionsCount ()
if val , ok := from .GetDraft (); ok {
m .Draft = val
}
}
func (*MonoForumDialog ) TypeID () uint32 {
return MonoForumDialogTypeID
}
func (*MonoForumDialog ) TypeName () string {
return "monoForumDialog"
}
func (m *MonoForumDialog ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "monoForumDialog" ,
ID : MonoForumDialogTypeID ,
}
if m == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "UnreadMark" ,
SchemaName : "unread_mark" ,
Null : !m .Flags .Has (3 ),
},
{
Name : "NopaidMessagesException" ,
SchemaName : "nopaid_messages_exception" ,
Null : !m .Flags .Has (4 ),
},
{
Name : "Peer" ,
SchemaName : "peer" ,
},
{
Name : "TopMessage" ,
SchemaName : "top_message" ,
},
{
Name : "ReadInboxMaxID" ,
SchemaName : "read_inbox_max_id" ,
},
{
Name : "ReadOutboxMaxID" ,
SchemaName : "read_outbox_max_id" ,
},
{
Name : "UnreadCount" ,
SchemaName : "unread_count" ,
},
{
Name : "UnreadReactionsCount" ,
SchemaName : "unread_reactions_count" ,
},
{
Name : "Draft" ,
SchemaName : "draft" ,
Null : !m .Flags .Has (1 ),
},
}
return typ
}
func (m *MonoForumDialog ) SetFlags () {
if !(m .UnreadMark == false ) {
m .Flags .Set (3 )
}
if !(m .NopaidMessagesException == false ) {
m .Flags .Set (4 )
}
if !(m .Draft == nil ) {
m .Flags .Set (1 )
}
}
func (m *MonoForumDialog ) Encode (b *bin .Buffer ) error {
if m == nil {
return fmt .Errorf ("can't encode monoForumDialog#64407ea7 as nil" )
}
b .PutID (MonoForumDialogTypeID )
return m .EncodeBare (b )
}
func (m *MonoForumDialog ) EncodeBare (b *bin .Buffer ) error {
if m == nil {
return fmt .Errorf ("can't encode monoForumDialog#64407ea7 as nil" )
}
m .SetFlags ()
if err := m .Flags .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode monoForumDialog#64407ea7: field flags: %w" , err )
}
if m .Peer == nil {
return fmt .Errorf ("unable to encode monoForumDialog#64407ea7: field peer is nil" )
}
if err := m .Peer .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode monoForumDialog#64407ea7: field peer: %w" , err )
}
b .PutInt (m .TopMessage )
b .PutInt (m .ReadInboxMaxID )
b .PutInt (m .ReadOutboxMaxID )
b .PutInt (m .UnreadCount )
b .PutInt (m .UnreadReactionsCount )
if m .Flags .Has (1 ) {
if m .Draft == nil {
return fmt .Errorf ("unable to encode monoForumDialog#64407ea7: field draft is nil" )
}
if err := m .Draft .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode monoForumDialog#64407ea7: field draft: %w" , err )
}
}
return nil
}
func (m *MonoForumDialog ) Decode (b *bin .Buffer ) error {
if m == nil {
return fmt .Errorf ("can't decode monoForumDialog#64407ea7 to nil" )
}
if err := b .ConsumeID (MonoForumDialogTypeID ); err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: %w" , err )
}
return m .DecodeBare (b )
}
func (m *MonoForumDialog ) DecodeBare (b *bin .Buffer ) error {
if m == nil {
return fmt .Errorf ("can't decode monoForumDialog#64407ea7 to nil" )
}
{
if err := m .Flags .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field flags: %w" , err )
}
}
m .UnreadMark = m .Flags .Has (3 )
m .NopaidMessagesException = m .Flags .Has (4 )
{
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field peer: %w" , err )
}
m .Peer = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field top_message: %w" , err )
}
m .TopMessage = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field read_inbox_max_id: %w" , err )
}
m .ReadInboxMaxID = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field read_outbox_max_id: %w" , err )
}
m .ReadOutboxMaxID = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field unread_count: %w" , err )
}
m .UnreadCount = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field unread_reactions_count: %w" , err )
}
m .UnreadReactionsCount = value
}
if m .Flags .Has (1 ) {
value , err := DecodeDraftMessage (b )
if err != nil {
return fmt .Errorf ("unable to decode monoForumDialog#64407ea7: field draft: %w" , err )
}
m .Draft = value
}
return nil
}
func (m *MonoForumDialog ) SetUnreadMark (value bool ) {
if value {
m .Flags .Set (3 )
m .UnreadMark = true
} else {
m .Flags .Unset (3 )
m .UnreadMark = false
}
}
func (m *MonoForumDialog ) GetUnreadMark () (value bool ) {
if m == nil {
return
}
return m .Flags .Has (3 )
}
func (m *MonoForumDialog ) SetNopaidMessagesException (value bool ) {
if value {
m .Flags .Set (4 )
m .NopaidMessagesException = true
} else {
m .Flags .Unset (4 )
m .NopaidMessagesException = false
}
}
func (m *MonoForumDialog ) GetNopaidMessagesException () (value bool ) {
if m == nil {
return
}
return m .Flags .Has (4 )
}
func (m *MonoForumDialog ) GetPeer () (value PeerClass ) {
if m == nil {
return
}
return m .Peer
}
func (m *MonoForumDialog ) GetTopMessage () (value int ) {
if m == nil {
return
}
return m .TopMessage
}
func (m *MonoForumDialog ) GetReadInboxMaxID () (value int ) {
if m == nil {
return
}
return m .ReadInboxMaxID
}
func (m *MonoForumDialog ) GetReadOutboxMaxID () (value int ) {
if m == nil {
return
}
return m .ReadOutboxMaxID
}
func (m *MonoForumDialog ) GetUnreadCount () (value int ) {
if m == nil {
return
}
return m .UnreadCount
}
func (m *MonoForumDialog ) GetUnreadReactionsCount () (value int ) {
if m == nil {
return
}
return m .UnreadReactionsCount
}
func (m *MonoForumDialog ) SetDraft (value DraftMessageClass ) {
m .Flags .Set (1 )
m .Draft = value
}
func (m *MonoForumDialog ) GetDraft () (value DraftMessageClass , ok bool ) {
if m == nil {
return
}
if !m .Flags .Has (1 ) {
return value , false
}
return m .Draft , true
}
const SavedDialogClassName = "SavedDialog"
type SavedDialogClass interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () SavedDialogClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
GetPeer () (value PeerClass )
GetTopMessage () (value int )
}
func DecodeSavedDialog (buf *bin .Buffer ) (SavedDialogClass , error ) {
id , err := buf .PeekID ()
if err != nil {
return nil , err
}
switch id {
case SavedDialogTypeID :
v := SavedDialog {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode SavedDialogClass: %w" , err )
}
return &v , nil
case MonoForumDialogTypeID :
v := MonoForumDialog {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode SavedDialogClass: %w" , err )
}
return &v , nil
default :
return nil , fmt .Errorf ("unable to decode SavedDialogClass: %w" , bin .NewUnexpectedID (id ))
}
}
type SavedDialogBox struct {
SavedDialog SavedDialogClass
}
func (b *SavedDialogBox ) Decode (buf *bin .Buffer ) error {
if b == nil {
return fmt .Errorf ("unable to decode SavedDialogBox to nil" )
}
v , err := DecodeSavedDialog (buf )
if err != nil {
return fmt .Errorf ("unable to decode boxed value: %w" , err )
}
b .SavedDialog = v
return nil
}
func (b *SavedDialogBox ) Encode (buf *bin .Buffer ) error {
if b == nil || b .SavedDialog == nil {
return fmt .Errorf ("unable to encode SavedDialogClass as nil" )
}
return b .SavedDialog .Encode (buf )
}
The pages are generated with Golds v0.8.4 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .