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

2052 lines
67 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{}
)
// ChatStatisticsSupergroup represents TL type `chatStatisticsSupergroup#c67549ef`.
type ChatStatisticsSupergroup struct {
// A period to which the statistics applies
Period DateRange
// Number of members in the chat
MemberCount StatisticalValue
// Number of messages sent to the chat
MessageCount StatisticalValue
// Number of users who viewed messages in the chat
ViewerCount StatisticalValue
// Number of users who sent messages to the chat
SenderCount StatisticalValue
// A graph containing number of members in the chat
MemberCountGraph StatisticalGraphClass
// A graph containing number of members joined and left the chat
JoinGraph StatisticalGraphClass
// A graph containing number of new member joins per source
JoinBySourceGraph StatisticalGraphClass
// A graph containing distribution of active users per language
LanguageGraph StatisticalGraphClass
// A graph containing distribution of sent messages by content type
MessageContentGraph StatisticalGraphClass
// A graph containing number of different actions in the chat
ActionGraph StatisticalGraphClass
// A graph containing distribution of message views per hour
DayGraph StatisticalGraphClass
// A graph containing distribution of message views per day of week
WeekGraph StatisticalGraphClass
// List of users sent most messages in the last week
TopSenders []ChatStatisticsMessageSenderInfo
// List of most active administrators in the last week
TopAdministrators []ChatStatisticsAdministratorActionsInfo
// List of most active inviters of new members in the last week
TopInviters []ChatStatisticsInviterInfo
}
// ChatStatisticsSupergroupTypeID is TL type id of ChatStatisticsSupergroup.
const ChatStatisticsSupergroupTypeID = 0xc67549ef
// construct implements constructor of ChatStatisticsClass.
func (c ChatStatisticsSupergroup) construct() ChatStatisticsClass { return &c }
// Ensuring interfaces in compile-time for ChatStatisticsSupergroup.
var (
_ bin.Encoder = &ChatStatisticsSupergroup{}
_ bin.Decoder = &ChatStatisticsSupergroup{}
_ bin.BareEncoder = &ChatStatisticsSupergroup{}
_ bin.BareDecoder = &ChatStatisticsSupergroup{}
_ ChatStatisticsClass = &ChatStatisticsSupergroup{}
)
func (c *ChatStatisticsSupergroup) Zero() bool {
if c == nil {
return true
}
if !(c.Period.Zero()) {
return false
}
if !(c.MemberCount.Zero()) {
return false
}
if !(c.MessageCount.Zero()) {
return false
}
if !(c.ViewerCount.Zero()) {
return false
}
if !(c.SenderCount.Zero()) {
return false
}
if !(c.MemberCountGraph == nil) {
return false
}
if !(c.JoinGraph == nil) {
return false
}
if !(c.JoinBySourceGraph == nil) {
return false
}
if !(c.LanguageGraph == nil) {
return false
}
if !(c.MessageContentGraph == nil) {
return false
}
if !(c.ActionGraph == nil) {
return false
}
if !(c.DayGraph == nil) {
return false
}
if !(c.WeekGraph == nil) {
return false
}
if !(c.TopSenders == nil) {
return false
}
if !(c.TopAdministrators == nil) {
return false
}
if !(c.TopInviters == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatStatisticsSupergroup) String() string {
if c == nil {
return "ChatStatisticsSupergroup(nil)"
}
type Alias ChatStatisticsSupergroup
return fmt.Sprintf("ChatStatisticsSupergroup%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatStatisticsSupergroup) TypeID() uint32 {
return ChatStatisticsSupergroupTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatStatisticsSupergroup) TypeName() string {
return "chatStatisticsSupergroup"
}
// TypeInfo returns info about TL type.
func (c *ChatStatisticsSupergroup) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatStatisticsSupergroup",
ID: ChatStatisticsSupergroupTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Period",
SchemaName: "period",
},
{
Name: "MemberCount",
SchemaName: "member_count",
},
{
Name: "MessageCount",
SchemaName: "message_count",
},
{
Name: "ViewerCount",
SchemaName: "viewer_count",
},
{
Name: "SenderCount",
SchemaName: "sender_count",
},
{
Name: "MemberCountGraph",
SchemaName: "member_count_graph",
},
{
Name: "JoinGraph",
SchemaName: "join_graph",
},
{
Name: "JoinBySourceGraph",
SchemaName: "join_by_source_graph",
},
{
Name: "LanguageGraph",
SchemaName: "language_graph",
},
{
Name: "MessageContentGraph",
SchemaName: "message_content_graph",
},
{
Name: "ActionGraph",
SchemaName: "action_graph",
},
{
Name: "DayGraph",
SchemaName: "day_graph",
},
{
Name: "WeekGraph",
SchemaName: "week_graph",
},
{
Name: "TopSenders",
SchemaName: "top_senders",
},
{
Name: "TopAdministrators",
SchemaName: "top_administrators",
},
{
Name: "TopInviters",
SchemaName: "top_inviters",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatStatisticsSupergroup) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatStatisticsSupergroup#c67549ef as nil")
}
b.PutID(ChatStatisticsSupergroupTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatStatisticsSupergroup) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatStatisticsSupergroup#c67549ef as nil")
}
if err := c.Period.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field period: %w", err)
}
if err := c.MemberCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
}
if err := c.MessageCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
}
if err := c.ViewerCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
}
if err := c.SenderCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
}
if c.MemberCountGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph is nil")
}
if err := c.MemberCountGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
}
if c.JoinGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph is nil")
}
if err := c.JoinGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
}
if c.JoinBySourceGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph is nil")
}
if err := c.JoinBySourceGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
}
if c.LanguageGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph is nil")
}
if err := c.LanguageGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
}
if c.MessageContentGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph is nil")
}
if err := c.MessageContentGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
}
if c.ActionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph is nil")
}
if err := c.ActionGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
}
if c.DayGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph is nil")
}
if err := c.DayGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
}
if c.WeekGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph is nil")
}
if err := c.WeekGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
}
b.PutInt(len(c.TopSenders))
for idx, v := range c.TopSenders {
if err := v.EncodeBare(b); err != nil {
return fmt.Errorf("unable to encode bare chatStatisticsSupergroup#c67549ef: field top_senders element with index %d: %w", idx, err)
}
}
b.PutInt(len(c.TopAdministrators))
for idx, v := range c.TopAdministrators {
if err := v.EncodeBare(b); err != nil {
return fmt.Errorf("unable to encode bare chatStatisticsSupergroup#c67549ef: field top_administrators element with index %d: %w", idx, err)
}
}
b.PutInt(len(c.TopInviters))
for idx, v := range c.TopInviters {
if err := v.EncodeBare(b); err != nil {
return fmt.Errorf("unable to encode bare chatStatisticsSupergroup#c67549ef: field top_inviters element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatStatisticsSupergroup) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatStatisticsSupergroup#c67549ef to nil")
}
if err := b.ConsumeID(ChatStatisticsSupergroupTypeID); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatStatisticsSupergroup) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatStatisticsSupergroup#c67549ef to nil")
}
{
if err := c.Period.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field period: %w", err)
}
}
{
if err := c.MemberCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
}
}
{
if err := c.MessageCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
}
}
{
if err := c.ViewerCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
}
}
{
if err := c.SenderCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
}
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
}
c.MemberCountGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
}
c.JoinGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
}
c.JoinBySourceGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
}
c.LanguageGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
}
c.MessageContentGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
}
c.ActionGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
}
c.DayGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
}
c.WeekGraph = value
}
{
headerLen, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
}
if headerLen > 0 {
c.TopSenders = make([]ChatStatisticsMessageSenderInfo, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value ChatStatisticsMessageSenderInfo
if err := value.DecodeBare(b); err != nil {
return fmt.Errorf("unable to decode bare chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
}
c.TopSenders = append(c.TopSenders, value)
}
}
{
headerLen, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
}
if headerLen > 0 {
c.TopAdministrators = make([]ChatStatisticsAdministratorActionsInfo, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value ChatStatisticsAdministratorActionsInfo
if err := value.DecodeBare(b); err != nil {
return fmt.Errorf("unable to decode bare chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
}
c.TopAdministrators = append(c.TopAdministrators, value)
}
}
{
headerLen, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
}
if headerLen > 0 {
c.TopInviters = make([]ChatStatisticsInviterInfo, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value ChatStatisticsInviterInfo
if err := value.DecodeBare(b); err != nil {
return fmt.Errorf("unable to decode bare chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
}
c.TopInviters = append(c.TopInviters, value)
}
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatStatisticsSupergroup) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatStatisticsSupergroup#c67549ef as nil")
}
b.ObjStart()
b.PutID("chatStatisticsSupergroup")
b.Comma()
b.FieldStart("period")
if err := c.Period.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field period: %w", err)
}
b.Comma()
b.FieldStart("member_count")
if err := c.MemberCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
}
b.Comma()
b.FieldStart("message_count")
if err := c.MessageCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
}
b.Comma()
b.FieldStart("viewer_count")
if err := c.ViewerCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
}
b.Comma()
b.FieldStart("sender_count")
if err := c.SenderCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
}
b.Comma()
b.FieldStart("member_count_graph")
if c.MemberCountGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph is nil")
}
if err := c.MemberCountGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
}
b.Comma()
b.FieldStart("join_graph")
if c.JoinGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph is nil")
}
if err := c.JoinGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
}
b.Comma()
b.FieldStart("join_by_source_graph")
if c.JoinBySourceGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph is nil")
}
if err := c.JoinBySourceGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
}
b.Comma()
b.FieldStart("language_graph")
if c.LanguageGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph is nil")
}
if err := c.LanguageGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
}
b.Comma()
b.FieldStart("message_content_graph")
if c.MessageContentGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph is nil")
}
if err := c.MessageContentGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
}
b.Comma()
b.FieldStart("action_graph")
if c.ActionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph is nil")
}
if err := c.ActionGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
}
b.Comma()
b.FieldStart("day_graph")
if c.DayGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph is nil")
}
if err := c.DayGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
}
b.Comma()
b.FieldStart("week_graph")
if c.WeekGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph is nil")
}
if err := c.WeekGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
}
b.Comma()
b.FieldStart("top_senders")
b.ArrStart()
for idx, v := range c.TopSenders {
if err := v.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field top_senders element with index %d: %w", idx, err)
}
b.Comma()
}
b.StripComma()
b.ArrEnd()
b.Comma()
b.FieldStart("top_administrators")
b.ArrStart()
for idx, v := range c.TopAdministrators {
if err := v.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field top_administrators element with index %d: %w", idx, err)
}
b.Comma()
}
b.StripComma()
b.ArrEnd()
b.Comma()
b.FieldStart("top_inviters")
b.ArrStart()
for idx, v := range c.TopInviters {
if err := v.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsSupergroup#c67549ef: field top_inviters element with index %d: %w", idx, err)
}
b.Comma()
}
b.StripComma()
b.ArrEnd()
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatStatisticsSupergroup) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatStatisticsSupergroup#c67549ef to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatStatisticsSupergroup"); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: %w", err)
}
case "period":
if err := c.Period.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field period: %w", err)
}
case "member_count":
if err := c.MemberCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count: %w", err)
}
case "message_count":
if err := c.MessageCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_count: %w", err)
}
case "viewer_count":
if err := c.ViewerCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field viewer_count: %w", err)
}
case "sender_count":
if err := c.SenderCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field sender_count: %w", err)
}
case "member_count_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field member_count_graph: %w", err)
}
c.MemberCountGraph = value
case "join_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_graph: %w", err)
}
c.JoinGraph = value
case "join_by_source_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field join_by_source_graph: %w", err)
}
c.JoinBySourceGraph = value
case "language_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field language_graph: %w", err)
}
c.LanguageGraph = value
case "message_content_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field message_content_graph: %w", err)
}
c.MessageContentGraph = value
case "action_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field action_graph: %w", err)
}
c.ActionGraph = value
case "day_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field day_graph: %w", err)
}
c.DayGraph = value
case "week_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field week_graph: %w", err)
}
c.WeekGraph = value
case "top_senders":
if err := b.Arr(func(b tdjson.Decoder) error {
var value ChatStatisticsMessageSenderInfo
if err := value.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
}
c.TopSenders = append(c.TopSenders, value)
return nil
}); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_senders: %w", err)
}
case "top_administrators":
if err := b.Arr(func(b tdjson.Decoder) error {
var value ChatStatisticsAdministratorActionsInfo
if err := value.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
}
c.TopAdministrators = append(c.TopAdministrators, value)
return nil
}); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_administrators: %w", err)
}
case "top_inviters":
if err := b.Arr(func(b tdjson.Decoder) error {
var value ChatStatisticsInviterInfo
if err := value.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
}
c.TopInviters = append(c.TopInviters, value)
return nil
}); err != nil {
return fmt.Errorf("unable to decode chatStatisticsSupergroup#c67549ef: field top_inviters: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// GetPeriod returns value of Period field.
func (c *ChatStatisticsSupergroup) GetPeriod() (value DateRange) {
if c == nil {
return
}
return c.Period
}
// GetMemberCount returns value of MemberCount field.
func (c *ChatStatisticsSupergroup) GetMemberCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MemberCount
}
// GetMessageCount returns value of MessageCount field.
func (c *ChatStatisticsSupergroup) GetMessageCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MessageCount
}
// GetViewerCount returns value of ViewerCount field.
func (c *ChatStatisticsSupergroup) GetViewerCount() (value StatisticalValue) {
if c == nil {
return
}
return c.ViewerCount
}
// GetSenderCount returns value of SenderCount field.
func (c *ChatStatisticsSupergroup) GetSenderCount() (value StatisticalValue) {
if c == nil {
return
}
return c.SenderCount
}
// GetMemberCountGraph returns value of MemberCountGraph field.
func (c *ChatStatisticsSupergroup) GetMemberCountGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.MemberCountGraph
}
// GetJoinGraph returns value of JoinGraph field.
func (c *ChatStatisticsSupergroup) GetJoinGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.JoinGraph
}
// GetJoinBySourceGraph returns value of JoinBySourceGraph field.
func (c *ChatStatisticsSupergroup) GetJoinBySourceGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.JoinBySourceGraph
}
// GetLanguageGraph returns value of LanguageGraph field.
func (c *ChatStatisticsSupergroup) GetLanguageGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.LanguageGraph
}
// GetMessageContentGraph returns value of MessageContentGraph field.
func (c *ChatStatisticsSupergroup) GetMessageContentGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.MessageContentGraph
}
// GetActionGraph returns value of ActionGraph field.
func (c *ChatStatisticsSupergroup) GetActionGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.ActionGraph
}
// GetDayGraph returns value of DayGraph field.
func (c *ChatStatisticsSupergroup) GetDayGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.DayGraph
}
// GetWeekGraph returns value of WeekGraph field.
func (c *ChatStatisticsSupergroup) GetWeekGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.WeekGraph
}
// GetTopSenders returns value of TopSenders field.
func (c *ChatStatisticsSupergroup) GetTopSenders() (value []ChatStatisticsMessageSenderInfo) {
if c == nil {
return
}
return c.TopSenders
}
// GetTopAdministrators returns value of TopAdministrators field.
func (c *ChatStatisticsSupergroup) GetTopAdministrators() (value []ChatStatisticsAdministratorActionsInfo) {
if c == nil {
return
}
return c.TopAdministrators
}
// GetTopInviters returns value of TopInviters field.
func (c *ChatStatisticsSupergroup) GetTopInviters() (value []ChatStatisticsInviterInfo) {
if c == nil {
return
}
return c.TopInviters
}
// ChatStatisticsChannel represents TL type `chatStatisticsChannel#b8e95b4`.
type ChatStatisticsChannel struct {
// A period to which the statistics applies
Period DateRange
// Number of members in the chat
MemberCount StatisticalValue
// Mean number of times the recently sent messages were viewed
MeanMessageViewCount StatisticalValue
// Mean number of times the recently sent messages were shared
MeanMessageShareCount StatisticalValue
// Mean number of times reactions were added to the recently sent messages
MeanMessageReactionCount StatisticalValue
// Mean number of times the recently posted stories were viewed
MeanStoryViewCount StatisticalValue
// Mean number of times the recently posted stories were shared
MeanStoryShareCount StatisticalValue
// Mean number of times reactions were added to the recently posted stories
MeanStoryReactionCount StatisticalValue
// A percentage of users with enabled notifications for the chat; 0-100
EnabledNotificationsPercentage float64
// A graph containing number of members in the chat
MemberCountGraph StatisticalGraphClass
// A graph containing number of members joined and left the chat
JoinGraph StatisticalGraphClass
// A graph containing number of members muted and unmuted the chat
MuteGraph StatisticalGraphClass
// A graph containing number of message views in a given hour in the last two weeks
ViewCountByHourGraph StatisticalGraphClass
// A graph containing number of message views per source
ViewCountBySourceGraph StatisticalGraphClass
// A graph containing number of new member joins per source
JoinBySourceGraph StatisticalGraphClass
// A graph containing number of users viewed chat messages per language
LanguageGraph StatisticalGraphClass
// A graph containing number of chat message views and shares
MessageInteractionGraph StatisticalGraphClass
// A graph containing number of reactions on messages
MessageReactionGraph StatisticalGraphClass
// A graph containing number of story views and shares
StoryInteractionGraph StatisticalGraphClass
// A graph containing number of reactions on stories
StoryReactionGraph StatisticalGraphClass
// A graph containing number of views of associated with the chat instant views
InstantViewInteractionGraph StatisticalGraphClass
// Detailed statistics about number of views and shares of recently sent messages and
// posted stories
RecentInteractions []ChatStatisticsInteractionInfo
}
// ChatStatisticsChannelTypeID is TL type id of ChatStatisticsChannel.
const ChatStatisticsChannelTypeID = 0xb8e95b4
// construct implements constructor of ChatStatisticsClass.
func (c ChatStatisticsChannel) construct() ChatStatisticsClass { return &c }
// Ensuring interfaces in compile-time for ChatStatisticsChannel.
var (
_ bin.Encoder = &ChatStatisticsChannel{}
_ bin.Decoder = &ChatStatisticsChannel{}
_ bin.BareEncoder = &ChatStatisticsChannel{}
_ bin.BareDecoder = &ChatStatisticsChannel{}
_ ChatStatisticsClass = &ChatStatisticsChannel{}
)
func (c *ChatStatisticsChannel) Zero() bool {
if c == nil {
return true
}
if !(c.Period.Zero()) {
return false
}
if !(c.MemberCount.Zero()) {
return false
}
if !(c.MeanMessageViewCount.Zero()) {
return false
}
if !(c.MeanMessageShareCount.Zero()) {
return false
}
if !(c.MeanMessageReactionCount.Zero()) {
return false
}
if !(c.MeanStoryViewCount.Zero()) {
return false
}
if !(c.MeanStoryShareCount.Zero()) {
return false
}
if !(c.MeanStoryReactionCount.Zero()) {
return false
}
if !(c.EnabledNotificationsPercentage == 0) {
return false
}
if !(c.MemberCountGraph == nil) {
return false
}
if !(c.JoinGraph == nil) {
return false
}
if !(c.MuteGraph == nil) {
return false
}
if !(c.ViewCountByHourGraph == nil) {
return false
}
if !(c.ViewCountBySourceGraph == nil) {
return false
}
if !(c.JoinBySourceGraph == nil) {
return false
}
if !(c.LanguageGraph == nil) {
return false
}
if !(c.MessageInteractionGraph == nil) {
return false
}
if !(c.MessageReactionGraph == nil) {
return false
}
if !(c.StoryInteractionGraph == nil) {
return false
}
if !(c.StoryReactionGraph == nil) {
return false
}
if !(c.InstantViewInteractionGraph == nil) {
return false
}
if !(c.RecentInteractions == nil) {
return false
}
return true
}
// String implements fmt.Stringer.
func (c *ChatStatisticsChannel) String() string {
if c == nil {
return "ChatStatisticsChannel(nil)"
}
type Alias ChatStatisticsChannel
return fmt.Sprintf("ChatStatisticsChannel%+v", Alias(*c))
}
// TypeID returns type id in TL schema.
//
// See https://core.telegram.org/mtproto/TL-tl#remarks.
func (*ChatStatisticsChannel) TypeID() uint32 {
return ChatStatisticsChannelTypeID
}
// TypeName returns name of type in TL schema.
func (*ChatStatisticsChannel) TypeName() string {
return "chatStatisticsChannel"
}
// TypeInfo returns info about TL type.
func (c *ChatStatisticsChannel) TypeInfo() tdp.Type {
typ := tdp.Type{
Name: "chatStatisticsChannel",
ID: ChatStatisticsChannelTypeID,
}
if c == nil {
typ.Null = true
return typ
}
typ.Fields = []tdp.Field{
{
Name: "Period",
SchemaName: "period",
},
{
Name: "MemberCount",
SchemaName: "member_count",
},
{
Name: "MeanMessageViewCount",
SchemaName: "mean_message_view_count",
},
{
Name: "MeanMessageShareCount",
SchemaName: "mean_message_share_count",
},
{
Name: "MeanMessageReactionCount",
SchemaName: "mean_message_reaction_count",
},
{
Name: "MeanStoryViewCount",
SchemaName: "mean_story_view_count",
},
{
Name: "MeanStoryShareCount",
SchemaName: "mean_story_share_count",
},
{
Name: "MeanStoryReactionCount",
SchemaName: "mean_story_reaction_count",
},
{
Name: "EnabledNotificationsPercentage",
SchemaName: "enabled_notifications_percentage",
},
{
Name: "MemberCountGraph",
SchemaName: "member_count_graph",
},
{
Name: "JoinGraph",
SchemaName: "join_graph",
},
{
Name: "MuteGraph",
SchemaName: "mute_graph",
},
{
Name: "ViewCountByHourGraph",
SchemaName: "view_count_by_hour_graph",
},
{
Name: "ViewCountBySourceGraph",
SchemaName: "view_count_by_source_graph",
},
{
Name: "JoinBySourceGraph",
SchemaName: "join_by_source_graph",
},
{
Name: "LanguageGraph",
SchemaName: "language_graph",
},
{
Name: "MessageInteractionGraph",
SchemaName: "message_interaction_graph",
},
{
Name: "MessageReactionGraph",
SchemaName: "message_reaction_graph",
},
{
Name: "StoryInteractionGraph",
SchemaName: "story_interaction_graph",
},
{
Name: "StoryReactionGraph",
SchemaName: "story_reaction_graph",
},
{
Name: "InstantViewInteractionGraph",
SchemaName: "instant_view_interaction_graph",
},
{
Name: "RecentInteractions",
SchemaName: "recent_interactions",
},
}
return typ
}
// Encode implements bin.Encoder.
func (c *ChatStatisticsChannel) Encode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatStatisticsChannel#b8e95b4 as nil")
}
b.PutID(ChatStatisticsChannelTypeID)
return c.EncodeBare(b)
}
// EncodeBare implements bin.BareEncoder.
func (c *ChatStatisticsChannel) EncodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't encode chatStatisticsChannel#b8e95b4 as nil")
}
if err := c.Period.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field period: %w", err)
}
if err := c.MemberCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
}
if err := c.MeanMessageViewCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
}
if err := c.MeanMessageShareCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
}
if err := c.MeanMessageReactionCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
}
if err := c.MeanStoryViewCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
}
if err := c.MeanStoryShareCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
}
if err := c.MeanStoryReactionCount.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
}
b.PutDouble(c.EnabledNotificationsPercentage)
if c.MemberCountGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph is nil")
}
if err := c.MemberCountGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
}
if c.JoinGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph is nil")
}
if err := c.JoinGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
}
if c.MuteGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph is nil")
}
if err := c.MuteGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
}
if c.ViewCountByHourGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph is nil")
}
if err := c.ViewCountByHourGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
}
if c.ViewCountBySourceGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph is nil")
}
if err := c.ViewCountBySourceGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
}
if c.JoinBySourceGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph is nil")
}
if err := c.JoinBySourceGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
}
if c.LanguageGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph is nil")
}
if err := c.LanguageGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
}
if c.MessageInteractionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph is nil")
}
if err := c.MessageInteractionGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
}
if c.MessageReactionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph is nil")
}
if err := c.MessageReactionGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
}
if c.StoryInteractionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph is nil")
}
if err := c.StoryInteractionGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
}
if c.StoryReactionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph is nil")
}
if err := c.StoryReactionGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
}
if c.InstantViewInteractionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph is nil")
}
if err := c.InstantViewInteractionGraph.Encode(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
}
b.PutInt(len(c.RecentInteractions))
for idx, v := range c.RecentInteractions {
if err := v.EncodeBare(b); err != nil {
return fmt.Errorf("unable to encode bare chatStatisticsChannel#b8e95b4: field recent_interactions element with index %d: %w", idx, err)
}
}
return nil
}
// Decode implements bin.Decoder.
func (c *ChatStatisticsChannel) Decode(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatStatisticsChannel#b8e95b4 to nil")
}
if err := b.ConsumeID(ChatStatisticsChannelTypeID); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: %w", err)
}
return c.DecodeBare(b)
}
// DecodeBare implements bin.BareDecoder.
func (c *ChatStatisticsChannel) DecodeBare(b *bin.Buffer) error {
if c == nil {
return fmt.Errorf("can't decode chatStatisticsChannel#b8e95b4 to nil")
}
{
if err := c.Period.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field period: %w", err)
}
}
{
if err := c.MemberCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
}
}
{
if err := c.MeanMessageViewCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
}
}
{
if err := c.MeanMessageShareCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
}
}
{
if err := c.MeanMessageReactionCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
}
}
{
if err := c.MeanStoryViewCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
}
}
{
if err := c.MeanStoryShareCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
}
}
{
if err := c.MeanStoryReactionCount.Decode(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
}
}
{
value, err := b.Double()
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field enabled_notifications_percentage: %w", err)
}
c.EnabledNotificationsPercentage = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
}
c.MemberCountGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
}
c.JoinGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
}
c.MuteGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
}
c.ViewCountByHourGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
}
c.ViewCountBySourceGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
}
c.JoinBySourceGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
}
c.LanguageGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
}
c.MessageInteractionGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
}
c.MessageReactionGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
}
c.StoryInteractionGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
}
c.StoryReactionGraph = value
}
{
value, err := DecodeStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
}
c.InstantViewInteractionGraph = value
}
{
headerLen, err := b.Int()
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
}
if headerLen > 0 {
c.RecentInteractions = make([]ChatStatisticsInteractionInfo, 0, headerLen%bin.PreallocateLimit)
}
for idx := 0; idx < headerLen; idx++ {
var value ChatStatisticsInteractionInfo
if err := value.DecodeBare(b); err != nil {
return fmt.Errorf("unable to decode bare chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
}
c.RecentInteractions = append(c.RecentInteractions, value)
}
}
return nil
}
// EncodeTDLibJSON implements tdjson.TDLibEncoder.
func (c *ChatStatisticsChannel) EncodeTDLibJSON(b tdjson.Encoder) error {
if c == nil {
return fmt.Errorf("can't encode chatStatisticsChannel#b8e95b4 as nil")
}
b.ObjStart()
b.PutID("chatStatisticsChannel")
b.Comma()
b.FieldStart("period")
if err := c.Period.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field period: %w", err)
}
b.Comma()
b.FieldStart("member_count")
if err := c.MemberCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
}
b.Comma()
b.FieldStart("mean_message_view_count")
if err := c.MeanMessageViewCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
}
b.Comma()
b.FieldStart("mean_message_share_count")
if err := c.MeanMessageShareCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
}
b.Comma()
b.FieldStart("mean_message_reaction_count")
if err := c.MeanMessageReactionCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
}
b.Comma()
b.FieldStart("mean_story_view_count")
if err := c.MeanStoryViewCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
}
b.Comma()
b.FieldStart("mean_story_share_count")
if err := c.MeanStoryShareCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
}
b.Comma()
b.FieldStart("mean_story_reaction_count")
if err := c.MeanStoryReactionCount.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
}
b.Comma()
b.FieldStart("enabled_notifications_percentage")
b.PutDouble(c.EnabledNotificationsPercentage)
b.Comma()
b.FieldStart("member_count_graph")
if c.MemberCountGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph is nil")
}
if err := c.MemberCountGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
}
b.Comma()
b.FieldStart("join_graph")
if c.JoinGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph is nil")
}
if err := c.JoinGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
}
b.Comma()
b.FieldStart("mute_graph")
if c.MuteGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph is nil")
}
if err := c.MuteGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
}
b.Comma()
b.FieldStart("view_count_by_hour_graph")
if c.ViewCountByHourGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph is nil")
}
if err := c.ViewCountByHourGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
}
b.Comma()
b.FieldStart("view_count_by_source_graph")
if c.ViewCountBySourceGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph is nil")
}
if err := c.ViewCountBySourceGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
}
b.Comma()
b.FieldStart("join_by_source_graph")
if c.JoinBySourceGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph is nil")
}
if err := c.JoinBySourceGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
}
b.Comma()
b.FieldStart("language_graph")
if c.LanguageGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph is nil")
}
if err := c.LanguageGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
}
b.Comma()
b.FieldStart("message_interaction_graph")
if c.MessageInteractionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph is nil")
}
if err := c.MessageInteractionGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
}
b.Comma()
b.FieldStart("message_reaction_graph")
if c.MessageReactionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph is nil")
}
if err := c.MessageReactionGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
}
b.Comma()
b.FieldStart("story_interaction_graph")
if c.StoryInteractionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph is nil")
}
if err := c.StoryInteractionGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
}
b.Comma()
b.FieldStart("story_reaction_graph")
if c.StoryReactionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph is nil")
}
if err := c.StoryReactionGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
}
b.Comma()
b.FieldStart("instant_view_interaction_graph")
if c.InstantViewInteractionGraph == nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph is nil")
}
if err := c.InstantViewInteractionGraph.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
}
b.Comma()
b.FieldStart("recent_interactions")
b.ArrStart()
for idx, v := range c.RecentInteractions {
if err := v.EncodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to encode chatStatisticsChannel#b8e95b4: field recent_interactions element with index %d: %w", idx, err)
}
b.Comma()
}
b.StripComma()
b.ArrEnd()
b.Comma()
b.StripComma()
b.ObjEnd()
return nil
}
// DecodeTDLibJSON implements tdjson.TDLibDecoder.
func (c *ChatStatisticsChannel) DecodeTDLibJSON(b tdjson.Decoder) error {
if c == nil {
return fmt.Errorf("can't decode chatStatisticsChannel#b8e95b4 to nil")
}
return b.Obj(func(b tdjson.Decoder, key []byte) error {
switch string(key) {
case tdjson.TypeField:
if err := b.ConsumeID("chatStatisticsChannel"); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: %w", err)
}
case "period":
if err := c.Period.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field period: %w", err)
}
case "member_count":
if err := c.MemberCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count: %w", err)
}
case "mean_message_view_count":
if err := c.MeanMessageViewCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_view_count: %w", err)
}
case "mean_message_share_count":
if err := c.MeanMessageShareCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_share_count: %w", err)
}
case "mean_message_reaction_count":
if err := c.MeanMessageReactionCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_message_reaction_count: %w", err)
}
case "mean_story_view_count":
if err := c.MeanStoryViewCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_view_count: %w", err)
}
case "mean_story_share_count":
if err := c.MeanStoryShareCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_share_count: %w", err)
}
case "mean_story_reaction_count":
if err := c.MeanStoryReactionCount.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mean_story_reaction_count: %w", err)
}
case "enabled_notifications_percentage":
value, err := b.Double()
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field enabled_notifications_percentage: %w", err)
}
c.EnabledNotificationsPercentage = value
case "member_count_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field member_count_graph: %w", err)
}
c.MemberCountGraph = value
case "join_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_graph: %w", err)
}
c.JoinGraph = value
case "mute_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field mute_graph: %w", err)
}
c.MuteGraph = value
case "view_count_by_hour_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_hour_graph: %w", err)
}
c.ViewCountByHourGraph = value
case "view_count_by_source_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field view_count_by_source_graph: %w", err)
}
c.ViewCountBySourceGraph = value
case "join_by_source_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field join_by_source_graph: %w", err)
}
c.JoinBySourceGraph = value
case "language_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field language_graph: %w", err)
}
c.LanguageGraph = value
case "message_interaction_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_interaction_graph: %w", err)
}
c.MessageInteractionGraph = value
case "message_reaction_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field message_reaction_graph: %w", err)
}
c.MessageReactionGraph = value
case "story_interaction_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_interaction_graph: %w", err)
}
c.StoryInteractionGraph = value
case "story_reaction_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field story_reaction_graph: %w", err)
}
c.StoryReactionGraph = value
case "instant_view_interaction_graph":
value, err := DecodeTDLibJSONStatisticalGraph(b)
if err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field instant_view_interaction_graph: %w", err)
}
c.InstantViewInteractionGraph = value
case "recent_interactions":
if err := b.Arr(func(b tdjson.Decoder) error {
var value ChatStatisticsInteractionInfo
if err := value.DecodeTDLibJSON(b); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
}
c.RecentInteractions = append(c.RecentInteractions, value)
return nil
}); err != nil {
return fmt.Errorf("unable to decode chatStatisticsChannel#b8e95b4: field recent_interactions: %w", err)
}
default:
return b.Skip()
}
return nil
})
}
// GetPeriod returns value of Period field.
func (c *ChatStatisticsChannel) GetPeriod() (value DateRange) {
if c == nil {
return
}
return c.Period
}
// GetMemberCount returns value of MemberCount field.
func (c *ChatStatisticsChannel) GetMemberCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MemberCount
}
// GetMeanMessageViewCount returns value of MeanMessageViewCount field.
func (c *ChatStatisticsChannel) GetMeanMessageViewCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MeanMessageViewCount
}
// GetMeanMessageShareCount returns value of MeanMessageShareCount field.
func (c *ChatStatisticsChannel) GetMeanMessageShareCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MeanMessageShareCount
}
// GetMeanMessageReactionCount returns value of MeanMessageReactionCount field.
func (c *ChatStatisticsChannel) GetMeanMessageReactionCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MeanMessageReactionCount
}
// GetMeanStoryViewCount returns value of MeanStoryViewCount field.
func (c *ChatStatisticsChannel) GetMeanStoryViewCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MeanStoryViewCount
}
// GetMeanStoryShareCount returns value of MeanStoryShareCount field.
func (c *ChatStatisticsChannel) GetMeanStoryShareCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MeanStoryShareCount
}
// GetMeanStoryReactionCount returns value of MeanStoryReactionCount field.
func (c *ChatStatisticsChannel) GetMeanStoryReactionCount() (value StatisticalValue) {
if c == nil {
return
}
return c.MeanStoryReactionCount
}
// GetEnabledNotificationsPercentage returns value of EnabledNotificationsPercentage field.
func (c *ChatStatisticsChannel) GetEnabledNotificationsPercentage() (value float64) {
if c == nil {
return
}
return c.EnabledNotificationsPercentage
}
// GetMemberCountGraph returns value of MemberCountGraph field.
func (c *ChatStatisticsChannel) GetMemberCountGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.MemberCountGraph
}
// GetJoinGraph returns value of JoinGraph field.
func (c *ChatStatisticsChannel) GetJoinGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.JoinGraph
}
// GetMuteGraph returns value of MuteGraph field.
func (c *ChatStatisticsChannel) GetMuteGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.MuteGraph
}
// GetViewCountByHourGraph returns value of ViewCountByHourGraph field.
func (c *ChatStatisticsChannel) GetViewCountByHourGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.ViewCountByHourGraph
}
// GetViewCountBySourceGraph returns value of ViewCountBySourceGraph field.
func (c *ChatStatisticsChannel) GetViewCountBySourceGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.ViewCountBySourceGraph
}
// GetJoinBySourceGraph returns value of JoinBySourceGraph field.
func (c *ChatStatisticsChannel) GetJoinBySourceGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.JoinBySourceGraph
}
// GetLanguageGraph returns value of LanguageGraph field.
func (c *ChatStatisticsChannel) GetLanguageGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.LanguageGraph
}
// GetMessageInteractionGraph returns value of MessageInteractionGraph field.
func (c *ChatStatisticsChannel) GetMessageInteractionGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.MessageInteractionGraph
}
// GetMessageReactionGraph returns value of MessageReactionGraph field.
func (c *ChatStatisticsChannel) GetMessageReactionGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.MessageReactionGraph
}
// GetStoryInteractionGraph returns value of StoryInteractionGraph field.
func (c *ChatStatisticsChannel) GetStoryInteractionGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.StoryInteractionGraph
}
// GetStoryReactionGraph returns value of StoryReactionGraph field.
func (c *ChatStatisticsChannel) GetStoryReactionGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.StoryReactionGraph
}
// GetInstantViewInteractionGraph returns value of InstantViewInteractionGraph field.
func (c *ChatStatisticsChannel) GetInstantViewInteractionGraph() (value StatisticalGraphClass) {
if c == nil {
return
}
return c.InstantViewInteractionGraph
}
// GetRecentInteractions returns value of RecentInteractions field.
func (c *ChatStatisticsChannel) GetRecentInteractions() (value []ChatStatisticsInteractionInfo) {
if c == nil {
return
}
return c.RecentInteractions
}
// ChatStatisticsClassName is schema name of ChatStatisticsClass.
const ChatStatisticsClassName = "ChatStatistics"
// ChatStatisticsClass represents ChatStatistics generic type.
//
// Example:
//
// g, err := tdapi.DecodeChatStatistics(buf)
// if err != nil {
// panic(err)
// }
// switch v := g.(type) {
// case *tdapi.ChatStatisticsSupergroup: // chatStatisticsSupergroup#c67549ef
// case *tdapi.ChatStatisticsChannel: // chatStatisticsChannel#b8e95b4
// default: panic(v)
// }
type ChatStatisticsClass interface {
bin.Encoder
bin.Decoder
bin.BareEncoder
bin.BareDecoder
construct() ChatStatisticsClass
// 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
// A period to which the statistics applies
GetPeriod() (value DateRange)
// Number of members in the chat
GetMemberCount() (value StatisticalValue)
// A graph containing number of members in the chat
GetMemberCountGraph() (value StatisticalGraphClass)
// A graph containing number of members joined and left the chat
GetJoinGraph() (value StatisticalGraphClass)
// A graph containing number of new member joins per source
GetJoinBySourceGraph() (value StatisticalGraphClass)
// A graph containing distribution of active users per language
GetLanguageGraph() (value StatisticalGraphClass)
}
// DecodeChatStatistics implements binary de-serialization for ChatStatisticsClass.
func DecodeChatStatistics(buf *bin.Buffer) (ChatStatisticsClass, error) {
id, err := buf.PeekID()
if err != nil {
return nil, err
}
switch id {
case ChatStatisticsSupergroupTypeID:
// Decoding chatStatisticsSupergroup#c67549ef.
v := ChatStatisticsSupergroup{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
}
return &v, nil
case ChatStatisticsChannelTypeID:
// Decoding chatStatisticsChannel#b8e95b4.
v := ChatStatisticsChannel{}
if err := v.Decode(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", bin.NewUnexpectedID(id))
}
}
// DecodeTDLibJSONChatStatistics implements binary de-serialization for ChatStatisticsClass.
func DecodeTDLibJSONChatStatistics(buf tdjson.Decoder) (ChatStatisticsClass, error) {
id, err := buf.FindTypeID()
if err != nil {
return nil, err
}
switch id {
case "chatStatisticsSupergroup":
// Decoding chatStatisticsSupergroup#c67549ef.
v := ChatStatisticsSupergroup{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
}
return &v, nil
case "chatStatisticsChannel":
// Decoding chatStatisticsChannel#b8e95b4.
v := ChatStatisticsChannel{}
if err := v.DecodeTDLibJSON(buf); err != nil {
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", err)
}
return &v, nil
default:
return nil, fmt.Errorf("unable to decode ChatStatisticsClass: %w", tdjson.NewUnexpectedID(id))
}
}
// ChatStatistics boxes the ChatStatisticsClass providing a helper.
type ChatStatisticsBox struct {
ChatStatistics ChatStatisticsClass
}
// Decode implements bin.Decoder for ChatStatisticsBox.
func (b *ChatStatisticsBox) Decode(buf *bin.Buffer) error {
if b == nil {
return fmt.Errorf("unable to decode ChatStatisticsBox to nil")
}
v, err := DecodeChatStatistics(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.ChatStatistics = v
return nil
}
// Encode implements bin.Encode for ChatStatisticsBox.
func (b *ChatStatisticsBox) Encode(buf *bin.Buffer) error {
if b == nil || b.ChatStatistics == nil {
return fmt.Errorf("unable to encode ChatStatisticsClass as nil")
}
return b.ChatStatistics.Encode(buf)
}
// DecodeTDLibJSON implements bin.Decoder for ChatStatisticsBox.
func (b *ChatStatisticsBox) DecodeTDLibJSON(buf tdjson.Decoder) error {
if b == nil {
return fmt.Errorf("unable to decode ChatStatisticsBox to nil")
}
v, err := DecodeTDLibJSONChatStatistics(buf)
if err != nil {
return fmt.Errorf("unable to decode boxed value: %w", err)
}
b.ChatStatistics = v
return nil
}
// EncodeTDLibJSON implements bin.Encode for ChatStatisticsBox.
func (b *ChatStatisticsBox) EncodeTDLibJSON(buf tdjson.Encoder) error {
if b == nil || b.ChatStatistics == nil {
return fmt.Errorf("unable to encode ChatStatisticsClass as nil")
}
return b.ChatStatistics.EncodeTDLibJSON(buf)
}