package tg
import (
"context"
"errors"
"fmt"
"sort"
"strings"
"go.uber.org/multierr"
"github.com/gotd/td/bin"
"github.com/gotd/td/tdjson"
"github.com/gotd/td/tdp"
"github.com/gotd/td/tgerr"
)
var (
_ = bin .Buffer {}
_ = context .Background ()
_ = fmt .Stringer (nil )
_ = strings .Builder {}
_ = errors .Is
_ = multierr .AppendInto
_ = sort .Ints
_ = tdp .Format
_ = tgerr .Error {}
_ = tdjson .Encoder {}
)
type StarsRevenueStatus struct {
Flags bin .Fields
WithdrawalEnabled bool
CurrentBalance StarsAmountClass
AvailableBalance StarsAmountClass
OverallRevenue StarsAmountClass
NextWithdrawalAt int
}
const StarsRevenueStatusTypeID = 0xfebe5491
var (
_ bin .Encoder = &StarsRevenueStatus {}
_ bin .Decoder = &StarsRevenueStatus {}
_ bin .BareEncoder = &StarsRevenueStatus {}
_ bin .BareDecoder = &StarsRevenueStatus {}
)
func (s *StarsRevenueStatus ) Zero () bool {
if s == nil {
return true
}
if !(s .Flags .Zero ()) {
return false
}
if !(s .WithdrawalEnabled == false ) {
return false
}
if !(s .CurrentBalance == nil ) {
return false
}
if !(s .AvailableBalance == nil ) {
return false
}
if !(s .OverallRevenue == nil ) {
return false
}
if !(s .NextWithdrawalAt == 0 ) {
return false
}
return true
}
func (s *StarsRevenueStatus ) String () string {
if s == nil {
return "StarsRevenueStatus(nil)"
}
type Alias StarsRevenueStatus
return fmt .Sprintf ("StarsRevenueStatus%+v" , Alias (*s ))
}
func (s *StarsRevenueStatus ) FillFrom (from interface {
GetWithdrawalEnabled () (value bool )
GetCurrentBalance () (value StarsAmountClass )
GetAvailableBalance () (value StarsAmountClass )
GetOverallRevenue () (value StarsAmountClass )
GetNextWithdrawalAt () (value int , ok bool )
}) {
s .WithdrawalEnabled = from .GetWithdrawalEnabled ()
s .CurrentBalance = from .GetCurrentBalance ()
s .AvailableBalance = from .GetAvailableBalance ()
s .OverallRevenue = from .GetOverallRevenue ()
if val , ok := from .GetNextWithdrawalAt (); ok {
s .NextWithdrawalAt = val
}
}
func (*StarsRevenueStatus ) TypeID () uint32 {
return StarsRevenueStatusTypeID
}
func (*StarsRevenueStatus ) TypeName () string {
return "starsRevenueStatus"
}
func (s *StarsRevenueStatus ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "starsRevenueStatus" ,
ID : StarsRevenueStatusTypeID ,
}
if s == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "WithdrawalEnabled" ,
SchemaName : "withdrawal_enabled" ,
Null : !s .Flags .Has (0 ),
},
{
Name : "CurrentBalance" ,
SchemaName : "current_balance" ,
},
{
Name : "AvailableBalance" ,
SchemaName : "available_balance" ,
},
{
Name : "OverallRevenue" ,
SchemaName : "overall_revenue" ,
},
{
Name : "NextWithdrawalAt" ,
SchemaName : "next_withdrawal_at" ,
Null : !s .Flags .Has (1 ),
},
}
return typ
}
func (s *StarsRevenueStatus ) SetFlags () {
if !(s .WithdrawalEnabled == false ) {
s .Flags .Set (0 )
}
if !(s .NextWithdrawalAt == 0 ) {
s .Flags .Set (1 )
}
}
func (s *StarsRevenueStatus ) Encode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode starsRevenueStatus#febe5491 as nil" )
}
b .PutID (StarsRevenueStatusTypeID )
return s .EncodeBare (b )
}
func (s *StarsRevenueStatus ) EncodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode starsRevenueStatus#febe5491 as nil" )
}
s .SetFlags ()
if err := s .Flags .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field flags: %w" , err )
}
if s .CurrentBalance == nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field current_balance is nil" )
}
if err := s .CurrentBalance .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field current_balance: %w" , err )
}
if s .AvailableBalance == nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field available_balance is nil" )
}
if err := s .AvailableBalance .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field available_balance: %w" , err )
}
if s .OverallRevenue == nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field overall_revenue is nil" )
}
if err := s .OverallRevenue .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starsRevenueStatus#febe5491: field overall_revenue: %w" , err )
}
if s .Flags .Has (1 ) {
b .PutInt (s .NextWithdrawalAt )
}
return nil
}
func (s *StarsRevenueStatus ) Decode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode starsRevenueStatus#febe5491 to nil" )
}
if err := b .ConsumeID (StarsRevenueStatusTypeID ); err != nil {
return fmt .Errorf ("unable to decode starsRevenueStatus#febe5491: %w" , err )
}
return s .DecodeBare (b )
}
func (s *StarsRevenueStatus ) DecodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode starsRevenueStatus#febe5491 to nil" )
}
{
if err := s .Flags .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode starsRevenueStatus#febe5491: field flags: %w" , err )
}
}
s .WithdrawalEnabled = s .Flags .Has (0 )
{
value , err := DecodeStarsAmount (b )
if err != nil {
return fmt .Errorf ("unable to decode starsRevenueStatus#febe5491: field current_balance: %w" , err )
}
s .CurrentBalance = value
}
{
value , err := DecodeStarsAmount (b )
if err != nil {
return fmt .Errorf ("unable to decode starsRevenueStatus#febe5491: field available_balance: %w" , err )
}
s .AvailableBalance = value
}
{
value , err := DecodeStarsAmount (b )
if err != nil {
return fmt .Errorf ("unable to decode starsRevenueStatus#febe5491: field overall_revenue: %w" , err )
}
s .OverallRevenue = value
}
if s .Flags .Has (1 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starsRevenueStatus#febe5491: field next_withdrawal_at: %w" , err )
}
s .NextWithdrawalAt = value
}
return nil
}
func (s *StarsRevenueStatus ) SetWithdrawalEnabled (value bool ) {
if value {
s .Flags .Set (0 )
s .WithdrawalEnabled = true
} else {
s .Flags .Unset (0 )
s .WithdrawalEnabled = false
}
}
func (s *StarsRevenueStatus ) GetWithdrawalEnabled () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (0 )
}
func (s *StarsRevenueStatus ) GetCurrentBalance () (value StarsAmountClass ) {
if s == nil {
return
}
return s .CurrentBalance
}
func (s *StarsRevenueStatus ) GetAvailableBalance () (value StarsAmountClass ) {
if s == nil {
return
}
return s .AvailableBalance
}
func (s *StarsRevenueStatus ) GetOverallRevenue () (value StarsAmountClass ) {
if s == nil {
return
}
return s .OverallRevenue
}
func (s *StarsRevenueStatus ) SetNextWithdrawalAt (value int ) {
s .Flags .Set (1 )
s .NextWithdrawalAt = value
}
func (s *StarsRevenueStatus ) GetNextWithdrawalAt () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (1 ) {
return value , false
}
return s .NextWithdrawalAt , true
}
The pages are generated with Golds v0.8.4 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .