Files
mautrix-telegram/pkg/gotd/tdapi/tl_chat_member_status_gen.go
T
2025-06-27 20:03:37 -07:00

1403 lines
39 KiB
Go

// Code generated by gotdgen, DO NOT EDIT.
package tdapi
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdjson"
"go.mau.fi/mautrix-telegram/pkg/gotd/tdp"
"go.mau.fi/mautrix-telegram/pkg/gotd/tgerr"
)
// No-op definition for keeping imports.
var (
_ = bin.Buffer{}
_ = context.Background()
_ = fmt.Stringer(nil)
_ = strings.Builder{}
_ = errors.Is
_ = multierr.AppendInto
_ = sort.Ints
_ = tdp.Format
_ = tgerr.Error{}
_ = tdjson.Encoder{}
)
// ChatMemberStatusCreator represents TL type `chatMemberStatusCreator#f6764afe`.
type ChatMemberStatusCreator struct {
// A custom title of the owner; 0-16 characters without emoji; applicable to supergroups
// only
CustomTitle string
// True, if the creator isn't shown in the chat member list and sends messages
// anonymously; applicable to supergroups only
IsAnonymous bool
// True, if the user is a member of the chat
IsMember bool
}
// ChatMemberStatusCreatorTypeID is TL type id of ChatMemberStatusCreator.
const ChatMemberStatusCreatorTypeID = 0xf6764afe
// construct implements constructor of ChatMemberStatusClass.
func (c ChatMemberStatusCreator) construct() ChatMemberStatusClass { return &c }
// Ensuring interfaces in compile-time for ChatMemberStatusCreator.
var (
_ bin.Encoder = &ChatMemberStatusCreator{}
_ bin.Decoder = &ChatMemberStatusCreator{}
_ bin.BareEncoder = &ChatMemberStatusCreator{}
_ bin.BareDecoder = &ChatMemberStatusCreator{}
_ ChatMemberStatusClass = &ChatMemberStatusCreator{}
)
func (c *ChatMemberStatusCreator) Zero() bool {
if c == nil {
return true
}
if !(c.CustomTitle == "") {
return false
}
if !(c.IsAnonymous == false) {
return false
}
if !(c.IsMember == false) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatMemberStatusCreator) String() string {
if c == nil {
return "ChatMemberStatusCreator(nil)"
}
type Alias ChatMemberStatusCreator
return fmt.Sprintf("ChatMemberStatusCreator%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatMemberStatusCreator) TypeID() uint32 {
return ChatMemberStatusCreatorTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatMemberStatusCreator) TypeName() string {
return "chatMemberStatusCreator"
}
// TypeInfo returns info about TL type.
func (c *ChatMemberStatusCreator) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatMemberStatusCreator",
ID: ChatMemberStatusCreatorTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "CustomTitle",
SchemaName: "custom_title",
},
{
Name: "IsAnonymous",
SchemaName: "is_anonymous",
},
{
Name: "IsMember",
SchemaName: "is_member",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatMemberStatusCreator) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusCreator#f6764afe as nil")
}
b.PutID(ChatMemberStatusCreatorTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatMemberStatusCreator) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusCreator#f6764afe as nil")
}
b.PutString(c.CustomTitle)
b.PutBool(c.IsAnonymous)
b.PutBool(c.IsMember)
return nil
}
// Decode implements bin.Decoder.
func (c *ChatMemberStatusCreator) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusCreator#f6764afe to nil")
}
if err := b.ConsumeID(ChatMemberStatusCreatorTypeID); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatMemberStatusCreator) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusCreator#f6764afe to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: field custom_title: %w", err)
}
c.CustomTitle = value
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: field is_anonymous: %w", err)
}
c.IsAnonymous = value
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: field is_member: %w", err)
}
c.IsMember = value
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatMemberStatusCreator) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusCreator#f6764afe as nil")
}
b.ObjStart()
b.PutID("chatMemberStatusCreator")
b.Comma()
b.FieldStart("custom_title")
b.PutString(c.CustomTitle)
b.Comma()
b.FieldStart("is_anonymous")
b.PutBool(c.IsAnonymous)
b.Comma()
b.FieldStart("is_member")
b.PutBool(c.IsMember)
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatMemberStatusCreator) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusCreator#f6764afe to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatMemberStatusCreator"); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: %w", err)
}
case "custom_title":
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: field custom_title: %w", err)
}
c.CustomTitle = value
case "is_anonymous":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: field is_anonymous: %w", err)
}
c.IsAnonymous = value
case "is_member":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusCreator#f6764afe: field is_member: %w", err)
}
c.IsMember = value
default:
return b.Skip()
}
return nil
})
}
// GetCustomTitle returns value of CustomTitle field.
func (c *ChatMemberStatusCreator) GetCustomTitle() (value string) {
if c == nil {
return
}
return c.CustomTitle
}
// GetIsAnonymous returns value of IsAnonymous field.
func (c *ChatMemberStatusCreator) GetIsAnonymous() (value bool) {
if c == nil {
return
}
return c.IsAnonymous
}
// GetIsMember returns value of IsMember field.
func (c *ChatMemberStatusCreator) GetIsMember() (value bool) {
if c == nil {
return
}
return c.IsMember
}
// ChatMemberStatusAdministrator represents TL type `chatMemberStatusAdministrator#fbd3841d`.
type ChatMemberStatusAdministrator struct {
// A custom title of the administrator; 0-16 characters without emoji; applicable to
// supergroups only
CustomTitle string
// True, if the current user can edit the administrator privileges for the called user
CanBeEdited bool
// Rights of the administrator
Rights ChatAdministratorRights
}
// ChatMemberStatusAdministratorTypeID is TL type id of ChatMemberStatusAdministrator.
const ChatMemberStatusAdministratorTypeID = 0xfbd3841d
// construct implements constructor of ChatMemberStatusClass.
func (c ChatMemberStatusAdministrator) construct() ChatMemberStatusClass { return &c }
// Ensuring interfaces in compile-time for ChatMemberStatusAdministrator.
var (
_ bin.Encoder = &ChatMemberStatusAdministrator{}
_ bin.Decoder = &ChatMemberStatusAdministrator{}
_ bin.BareEncoder = &ChatMemberStatusAdministrator{}
_ bin.BareDecoder = &ChatMemberStatusAdministrator{}
_ ChatMemberStatusClass = &ChatMemberStatusAdministrator{}
)
func (c *ChatMemberStatusAdministrator) Zero() bool {
if c == nil {
return true
}
if !(c.CustomTitle == "") {
return false
}
if !(c.CanBeEdited == false) {
return false
}
if !(c.Rights.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatMemberStatusAdministrator) String() string {
if c == nil {
return "ChatMemberStatusAdministrator(nil)"
}
type Alias ChatMemberStatusAdministrator
return fmt.Sprintf("ChatMemberStatusAdministrator%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatMemberStatusAdministrator) TypeID() uint32 {
return ChatMemberStatusAdministratorTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatMemberStatusAdministrator) TypeName() string {
return "chatMemberStatusAdministrator"
}
// TypeInfo returns info about TL type.
func (c *ChatMemberStatusAdministrator) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatMemberStatusAdministrator",
ID: ChatMemberStatusAdministratorTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "CustomTitle",
SchemaName: "custom_title",
},
{
Name: "CanBeEdited",
SchemaName: "can_be_edited",
},
{
Name: "Rights",
SchemaName: "rights",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatMemberStatusAdministrator) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusAdministrator#fbd3841d as nil")
}
b.PutID(ChatMemberStatusAdministratorTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatMemberStatusAdministrator) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusAdministrator#fbd3841d as nil")
}
b.PutString(c.CustomTitle)
b.PutBool(c.CanBeEdited)
if err := c.Rights.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatMemberStatusAdministrator#fbd3841d: field rights: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatMemberStatusAdministrator) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusAdministrator#fbd3841d to nil")
}
if err := b.ConsumeID(ChatMemberStatusAdministratorTypeID); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatMemberStatusAdministrator) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusAdministrator#fbd3841d to nil")
}
{
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: field custom_title: %w", err)
}
c.CustomTitle = value
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: field can_be_edited: %w", err)
}
c.CanBeEdited = value
}
{
if err := c.Rights.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: field rights: %w", err)
}
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatMemberStatusAdministrator) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusAdministrator#fbd3841d as nil")
}
b.ObjStart()
b.PutID("chatMemberStatusAdministrator")
b.Comma()
b.FieldStart("custom_title")
b.PutString(c.CustomTitle)
b.Comma()
b.FieldStart("can_be_edited")
b.PutBool(c.CanBeEdited)
b.Comma()
b.FieldStart("rights")
if err := c.Rights.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatMemberStatusAdministrator#fbd3841d: field rights: %w", err)
}
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatMemberStatusAdministrator) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusAdministrator#fbd3841d to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatMemberStatusAdministrator"); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: %w", err)
}
case "custom_title":
value, err := b.String()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: field custom_title: %w", err)
}
c.CustomTitle = value
case "can_be_edited":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: field can_be_edited: %w", err)
}
c.CanBeEdited = value
case "rights":
if err := c.Rights.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusAdministrator#fbd3841d: field rights: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// GetCustomTitle returns value of CustomTitle field.
func (c *ChatMemberStatusAdministrator) GetCustomTitle() (value string) {
if c == nil {
return
}
return c.CustomTitle
}
// GetCanBeEdited returns value of CanBeEdited field.
func (c *ChatMemberStatusAdministrator) GetCanBeEdited() (value bool) {
if c == nil {
return
}
return c.CanBeEdited
}
// GetRights returns value of Rights field.
func (c *ChatMemberStatusAdministrator) GetRights() (value ChatAdministratorRights) {
if c == nil {
return
}
return c.Rights
}
// ChatMemberStatusMember represents TL type `chatMemberStatusMember#fe0cec16`.
type ChatMemberStatusMember struct {
// Point in time (Unix timestamp) when the user will be removed from the chat because of
// the expired subscription; 0 if never. Ignored in setChatMemberStatus
MemberUntilDate int32
}
// ChatMemberStatusMemberTypeID is TL type id of ChatMemberStatusMember.
const ChatMemberStatusMemberTypeID = 0xfe0cec16
// construct implements constructor of ChatMemberStatusClass.
func (c ChatMemberStatusMember) construct() ChatMemberStatusClass { return &c }
// Ensuring interfaces in compile-time for ChatMemberStatusMember.
var (
_ bin.Encoder = &ChatMemberStatusMember{}
_ bin.Decoder = &ChatMemberStatusMember{}
_ bin.BareEncoder = &ChatMemberStatusMember{}
_ bin.BareDecoder = &ChatMemberStatusMember{}
_ ChatMemberStatusClass = &ChatMemberStatusMember{}
)
func (c *ChatMemberStatusMember) Zero() bool {
if c == nil {
return true
}
if !(c.MemberUntilDate == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatMemberStatusMember) String() string {
if c == nil {
return "ChatMemberStatusMember(nil)"
}
type Alias ChatMemberStatusMember
return fmt.Sprintf("ChatMemberStatusMember%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatMemberStatusMember) TypeID() uint32 {
return ChatMemberStatusMemberTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatMemberStatusMember) TypeName() string {
return "chatMemberStatusMember"
}
// TypeInfo returns info about TL type.
func (c *ChatMemberStatusMember) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatMemberStatusMember",
ID: ChatMemberStatusMemberTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "MemberUntilDate",
SchemaName: "member_until_date",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatMemberStatusMember) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusMember#fe0cec16 as nil")
}
b.PutID(ChatMemberStatusMemberTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatMemberStatusMember) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusMember#fe0cec16 as nil")
}
b.PutInt32(c.MemberUntilDate)
return nil
}
// Decode implements bin.Decoder.
func (c *ChatMemberStatusMember) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusMember#fe0cec16 to nil")
}
if err := b.ConsumeID(ChatMemberStatusMemberTypeID); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusMember#fe0cec16: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatMemberStatusMember) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusMember#fe0cec16 to nil")
}
{
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusMember#fe0cec16: field member_until_date: %w", err)
}
c.MemberUntilDate = value
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatMemberStatusMember) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusMember#fe0cec16 as nil")
}
b.ObjStart()
b.PutID("chatMemberStatusMember")
b.Comma()
b.FieldStart("member_until_date")
b.PutInt32(c.MemberUntilDate)
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatMemberStatusMember) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusMember#fe0cec16 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatMemberStatusMember"); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusMember#fe0cec16: %w", err)
}
case "member_until_date":
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusMember#fe0cec16: field member_until_date: %w", err)
}
c.MemberUntilDate = value
default:
return b.Skip()
}
return nil
})
}
// GetMemberUntilDate returns value of MemberUntilDate field.
func (c *ChatMemberStatusMember) GetMemberUntilDate() (value int32) {
if c == nil {
return
}
return c.MemberUntilDate
}
// ChatMemberStatusRestricted represents TL type `chatMemberStatusRestricted#630774a6`.
type ChatMemberStatusRestricted struct {
// True, if the user is a member of the chat
IsMember bool
// Point in time (Unix timestamp) when restrictions will be lifted from the user; 0 if
// never. If the user is restricted for more than 366 days or for less than 30 seconds
// from the current time, the user is considered to be restricted forever
RestrictedUntilDate int32
// User permissions in the chat
Permissions ChatPermissions
}
// ChatMemberStatusRestrictedTypeID is TL type id of ChatMemberStatusRestricted.
const ChatMemberStatusRestrictedTypeID = 0x630774a6
// construct implements constructor of ChatMemberStatusClass.
func (c ChatMemberStatusRestricted) construct() ChatMemberStatusClass { return &c }
// Ensuring interfaces in compile-time for ChatMemberStatusRestricted.
var (
_ bin.Encoder = &ChatMemberStatusRestricted{}
_ bin.Decoder = &ChatMemberStatusRestricted{}
_ bin.BareEncoder = &ChatMemberStatusRestricted{}
_ bin.BareDecoder = &ChatMemberStatusRestricted{}
_ ChatMemberStatusClass = &ChatMemberStatusRestricted{}
)
func (c *ChatMemberStatusRestricted) Zero() bool {
if c == nil {
return true
}
if !(c.IsMember == false) {
return false
}
if !(c.RestrictedUntilDate == 0) {
return false
}
if !(c.Permissions.Zero()) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatMemberStatusRestricted) String() string {
if c == nil {
return "ChatMemberStatusRestricted(nil)"
}
type Alias ChatMemberStatusRestricted
return fmt.Sprintf("ChatMemberStatusRestricted%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatMemberStatusRestricted) TypeID() uint32 {
return ChatMemberStatusRestrictedTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatMemberStatusRestricted) TypeName() string {
return "chatMemberStatusRestricted"
}
// TypeInfo returns info about TL type.
func (c *ChatMemberStatusRestricted) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatMemberStatusRestricted",
ID: ChatMemberStatusRestrictedTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "IsMember",
SchemaName: "is_member",
},
{
Name: "RestrictedUntilDate",
SchemaName: "restricted_until_date",
},
{
Name: "Permissions",
SchemaName: "permissions",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatMemberStatusRestricted) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusRestricted#630774a6 as nil")
}
b.PutID(ChatMemberStatusRestrictedTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatMemberStatusRestricted) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusRestricted#630774a6 as nil")
}
b.PutBool(c.IsMember)
b.PutInt32(c.RestrictedUntilDate)
if err := c.Permissions.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatMemberStatusRestricted#630774a6: field permissions: %w", err)
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatMemberStatusRestricted) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusRestricted#630774a6 to nil")
}
if err := b.ConsumeID(ChatMemberStatusRestrictedTypeID); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatMemberStatusRestricted) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusRestricted#630774a6 to nil")
}
{
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: field is_member: %w", err)
}
c.IsMember = value
}
{
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: field restricted_until_date: %w", err)
}
c.RestrictedUntilDate = value
}
{
if err := c.Permissions.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: field permissions: %w", err)
}
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatMemberStatusRestricted) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusRestricted#630774a6 as nil")
}
b.ObjStart()
b.PutID("chatMemberStatusRestricted")
b.Comma()
b.FieldStart("is_member")
b.PutBool(c.IsMember)
b.Comma()
b.FieldStart("restricted_until_date")
b.PutInt32(c.RestrictedUntilDate)
b.Comma()
b.FieldStart("permissions")
if err := c.Permissions.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatMemberStatusRestricted#630774a6: field permissions: %w", err)
}
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatMemberStatusRestricted) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusRestricted#630774a6 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatMemberStatusRestricted"); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: %w", err)
}
case "is_member":
value, err := b.Bool()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: field is_member: %w", err)
}
c.IsMember = value
case "restricted_until_date":
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: field restricted_until_date: %w", err)
}
c.RestrictedUntilDate = value
case "permissions":
if err := c.Permissions.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusRestricted#630774a6: field permissions: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// GetIsMember returns value of IsMember field.
func (c *ChatMemberStatusRestricted) GetIsMember() (value bool) {
if c == nil {
return
}
return c.IsMember
}
// GetRestrictedUntilDate returns value of RestrictedUntilDate field.
func (c *ChatMemberStatusRestricted) GetRestrictedUntilDate() (value int32) {
if c == nil {
return
}
return c.RestrictedUntilDate
}
// GetPermissions returns value of Permissions field.
func (c *ChatMemberStatusRestricted) GetPermissions() (value ChatPermissions) {
if c == nil {
return
}
return c.Permissions
}
// ChatMemberStatusLeft represents TL type `chatMemberStatusLeft#ffa74425`.
type ChatMemberStatusLeft struct {
}
// ChatMemberStatusLeftTypeID is TL type id of ChatMemberStatusLeft.
const ChatMemberStatusLeftTypeID = 0xffa74425
// construct implements constructor of ChatMemberStatusClass.
func (c ChatMemberStatusLeft) construct() ChatMemberStatusClass { return &c }
// Ensuring interfaces in compile-time for ChatMemberStatusLeft.
var (
_ bin.Encoder = &ChatMemberStatusLeft{}
_ bin.Decoder = &ChatMemberStatusLeft{}
_ bin.BareEncoder = &ChatMemberStatusLeft{}
_ bin.BareDecoder = &ChatMemberStatusLeft{}
_ ChatMemberStatusClass = &ChatMemberStatusLeft{}
)
func (c *ChatMemberStatusLeft) Zero() bool {
if c == nil {
return true
}
return true
}
// String implements fmt.Stringer.
func (c *ChatMemberStatusLeft) String() string {
if c == nil {
return "ChatMemberStatusLeft(nil)"
}
type Alias ChatMemberStatusLeft
return fmt.Sprintf("ChatMemberStatusLeft%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatMemberStatusLeft) TypeID() uint32 {
return ChatMemberStatusLeftTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatMemberStatusLeft) TypeName() string {
return "chatMemberStatusLeft"
}
// TypeInfo returns info about TL type.
func (c *ChatMemberStatusLeft) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatMemberStatusLeft",
ID: ChatMemberStatusLeftTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatMemberStatusLeft) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusLeft#ffa74425 as nil")
}
b.PutID(ChatMemberStatusLeftTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatMemberStatusLeft) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusLeft#ffa74425 as nil")
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatMemberStatusLeft) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusLeft#ffa74425 to nil")
}
if err := b.ConsumeID(ChatMemberStatusLeftTypeID); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusLeft#ffa74425: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatMemberStatusLeft) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusLeft#ffa74425 to nil")
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatMemberStatusLeft) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusLeft#ffa74425 as nil")
}
b.ObjStart()
b.PutID("chatMemberStatusLeft")
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatMemberStatusLeft) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusLeft#ffa74425 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatMemberStatusLeft"); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusLeft#ffa74425: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// ChatMemberStatusBanned represents TL type `chatMemberStatusBanned#9d714eb6`.
type ChatMemberStatusBanned struct {
// Point in time (Unix timestamp) when the user will be unbanned; 0 if never. If the user
// is banned for more than 366 days or for less than 30 seconds from the current time,
// the user is considered to be banned forever. Always 0 in basic groups
BannedUntilDate int32
}
// ChatMemberStatusBannedTypeID is TL type id of ChatMemberStatusBanned.
const ChatMemberStatusBannedTypeID = 0x9d714eb6
// construct implements constructor of ChatMemberStatusClass.
func (c ChatMemberStatusBanned) construct() ChatMemberStatusClass { return &c }
// Ensuring interfaces in compile-time for ChatMemberStatusBanned.
var (
_ bin.Encoder = &ChatMemberStatusBanned{}
_ bin.Decoder = &ChatMemberStatusBanned{}
_ bin.BareEncoder = &ChatMemberStatusBanned{}
_ bin.BareDecoder = &ChatMemberStatusBanned{}
_ ChatMemberStatusClass = &ChatMemberStatusBanned{}
)
func (c *ChatMemberStatusBanned) Zero() bool {
if c == nil {
return true
}
if !(c.BannedUntilDate == 0) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatMemberStatusBanned) String() string {
if c == nil {
return "ChatMemberStatusBanned(nil)"
}
type Alias ChatMemberStatusBanned
return fmt.Sprintf("ChatMemberStatusBanned%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatMemberStatusBanned) TypeID() uint32 {
return ChatMemberStatusBannedTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatMemberStatusBanned) TypeName() string {
return "chatMemberStatusBanned"
}
// TypeInfo returns info about TL type.
func (c *ChatMemberStatusBanned) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatMemberStatusBanned",
ID: ChatMemberStatusBannedTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "BannedUntilDate",
SchemaName: "banned_until_date",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatMemberStatusBanned) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusBanned#9d714eb6 as nil")
}
b.PutID(ChatMemberStatusBannedTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatMemberStatusBanned) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusBanned#9d714eb6 as nil")
}
b.PutInt32(c.BannedUntilDate)
return nil
}
// Decode implements bin.Decoder.
func (c *ChatMemberStatusBanned) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusBanned#9d714eb6 to nil")
}
if err := b.ConsumeID(ChatMemberStatusBannedTypeID); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusBanned#9d714eb6: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatMemberStatusBanned) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusBanned#9d714eb6 to nil")
}
{
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusBanned#9d714eb6: field banned_until_date: %w", err)
}
c.BannedUntilDate = value
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatMemberStatusBanned) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatMemberStatusBanned#9d714eb6 as nil")
}
b.ObjStart()
b.PutID("chatMemberStatusBanned")
b.Comma()
b.FieldStart("banned_until_date")
b.PutInt32(c.BannedUntilDate)
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatMemberStatusBanned) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatMemberStatusBanned#9d714eb6 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatMemberStatusBanned"); err != nil {
return fmt.Errorf("unable to decode chatMemberStatusBanned#9d714eb6: %w", err)
}
case "banned_until_date":
value, err := b.Int32()
if err != nil {
return fmt.Errorf("unable to decode chatMemberStatusBanned#9d714eb6: field banned_until_date: %w", err)
}
c.BannedUntilDate = value
default:
return b.Skip()
}
return nil
})
}
// GetBannedUntilDate returns value of BannedUntilDate field.
func (c *ChatMemberStatusBanned) GetBannedUntilDate() (value int32) {
if c == nil {
return
}
return c.BannedUntilDate
}
// ChatMemberStatusClassName is schema name of ChatMemberStatusClass.
const ChatMemberStatusClassName = "ChatMemberStatus"
// ChatMemberStatusClass represents ChatMemberStatus generic type.
//
// Example:
//
// g, err := tdapi.DecodeChatMemberStatus(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tdapi.ChatMemberStatusCreator: // chatMemberStatusCreator#f6764afe
// case *tdapi.ChatMemberStatusAdministrator: // chatMemberStatusAdministrator#fbd3841d
// case *tdapi.ChatMemberStatusMember: // chatMemberStatusMember#fe0cec16
// case *tdapi.ChatMemberStatusRestricted: // chatMemberStatusRestricted#630774a6
// case *tdapi.ChatMemberStatusLeft: // chatMemberStatusLeft#ffa74425
// case *tdapi.ChatMemberStatusBanned: // chatMemberStatusBanned#9d714eb6
// default: panic(v)
// }
type ChatMemberStatusClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() ChatMemberStatusClass
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
TypeID() uint32
// TypeName returns name of type in TL schema.
TypeName() string
// String implements fmt.Stringer.
String() string
// Zero returns true if current object has a zero value.
Zero() bool
EncodeTDLibJSON(b tdjson.Encoder) error
DecodeTDLibJSON(b tdjson.Decoder) error
}
// DecodeChatMemberStatus implements binary de-serialization for ChatMemberStatusClass.
func DecodeChatMemberStatus(buf *bin.Buffer) (ChatMemberStatusClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case ChatMemberStatusCreatorTypeID:
// Decoding chatMemberStatusCreator#f6764afe.
v := ChatMemberStatusCreator{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case ChatMemberStatusAdministratorTypeID:
// Decoding chatMemberStatusAdministrator#fbd3841d.
v := ChatMemberStatusAdministrator{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case ChatMemberStatusMemberTypeID:
// Decoding chatMemberStatusMember#fe0cec16.
v := ChatMemberStatusMember{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case ChatMemberStatusRestrictedTypeID:
// Decoding chatMemberStatusRestricted#630774a6.
v := ChatMemberStatusRestricted{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case ChatMemberStatusLeftTypeID:
// Decoding chatMemberStatusLeft#ffa74425.
v := ChatMemberStatusLeft{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case ChatMemberStatusBannedTypeID:
// Decoding chatMemberStatusBanned#9d714eb6.
v := ChatMemberStatusBanned{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", bin.NewUnexpectedID(id))
}
}
// DecodeTDLibJSONChatMemberStatus implements binary de-serialization for ChatMemberStatusClass.
func DecodeTDLibJSONChatMemberStatus(buf tdjson.Decoder) (ChatMemberStatusClass, error) {
id, err := buf.FindTypeID()
if err != nil {
return nil, err
}
switch id {
case "chatMemberStatusCreator":
// Decoding chatMemberStatusCreator#f6764afe.
v := ChatMemberStatusCreator{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case "chatMemberStatusAdministrator":
// Decoding chatMemberStatusAdministrator#fbd3841d.
v := ChatMemberStatusAdministrator{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case "chatMemberStatusMember":
// Decoding chatMemberStatusMember#fe0cec16.
v := ChatMemberStatusMember{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case "chatMemberStatusRestricted":
// Decoding chatMemberStatusRestricted#630774a6.
v := ChatMemberStatusRestricted{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case "chatMemberStatusLeft":
// Decoding chatMemberStatusLeft#ffa74425.
v := ChatMemberStatusLeft{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
case "chatMemberStatusBanned":
// Decoding chatMemberStatusBanned#9d714eb6.
v := ChatMemberStatusBanned{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode ChatMemberStatusClass: %w", tdjson.NewUnexpectedID(id))
}
}
// ChatMemberStatus boxes the ChatMemberStatusClass providing a helper.
type ChatMemberStatusBox struct {
ChatMemberStatus ChatMemberStatusClass
}
// Decode implements bin.Decoder for ChatMemberStatusBox.
func (b *ChatMemberStatusBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode ChatMemberStatusBox to nil")
}
v, err := DecodeChatMemberStatus(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.ChatMemberStatus = v
return nil
}
// Encode implements bin.Encode for ChatMemberStatusBox.
func (b *ChatMemberStatusBox) Encode(buf *bin.Buffer) error {
if b == nil || b.ChatMemberStatus == nil {
return fmt.Errorf("unable to encode ChatMemberStatusClass as nil")
}
return b.ChatMemberStatus.Encode(buf)
}
// DecodeTDLibJSON implements bin.Decoder for ChatMemberStatusBox.
func (b *ChatMemberStatusBox) DecodeTDLibJSON(buf tdjson.Decoder) error {
if b == nil {
return fmt.Errorf("unable to decode ChatMemberStatusBox to nil")
}
v, err := DecodeTDLibJSONChatMemberStatus(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.ChatMemberStatus = v
return nil
}
// EncodeTDLibJSON implements bin.Encode for ChatMemberStatusBox.
func (b *ChatMemberStatusBox) EncodeTDLibJSON(buf tdjson.Encoder) error {
if b == nil || b.ChatMemberStatus == nil {
return fmt.Errorf("unable to encode ChatMemberStatusClass as nil")
}
return b.ChatMemberStatus.EncodeTDLibJSON(buf)
}