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 StarGift struct {
Flags bin .Fields
Limited bool
SoldOut bool
Birthday bool
RequirePremium bool
LimitedPerUser bool
PeerColorAvailable bool
Auction bool
ID int64
Sticker DocumentClass
Stars int64
AvailabilityRemains int
AvailabilityTotal int
AvailabilityResale int64
ConvertStars int64
FirstSaleDate int
LastSaleDate int
UpgradeStars int64
ResellMinStars int64
Title string
ReleasedBy PeerClass
PerUserTotal int
PerUserRemains int
LockedUntilDate int
AuctionSlug string
GiftsPerRound int
AuctionStartDate int
UpgradeVariants int
Background StarGiftBackground
}
const StarGiftTypeID = 0x313a9547
func (s StarGift ) construct () StarGiftClass { return &s }
var (
_ bin .Encoder = &StarGift {}
_ bin .Decoder = &StarGift {}
_ bin .BareEncoder = &StarGift {}
_ bin .BareDecoder = &StarGift {}
_ StarGiftClass = &StarGift {}
)
func (s *StarGift ) Zero () bool {
if s == nil {
return true
}
if !(s .Flags .Zero ()) {
return false
}
if !(s .Limited == false ) {
return false
}
if !(s .SoldOut == false ) {
return false
}
if !(s .Birthday == false ) {
return false
}
if !(s .RequirePremium == false ) {
return false
}
if !(s .LimitedPerUser == false ) {
return false
}
if !(s .PeerColorAvailable == false ) {
return false
}
if !(s .Auction == false ) {
return false
}
if !(s .ID == 0 ) {
return false
}
if !(s .Sticker == nil ) {
return false
}
if !(s .Stars == 0 ) {
return false
}
if !(s .AvailabilityRemains == 0 ) {
return false
}
if !(s .AvailabilityTotal == 0 ) {
return false
}
if !(s .AvailabilityResale == 0 ) {
return false
}
if !(s .ConvertStars == 0 ) {
return false
}
if !(s .FirstSaleDate == 0 ) {
return false
}
if !(s .LastSaleDate == 0 ) {
return false
}
if !(s .UpgradeStars == 0 ) {
return false
}
if !(s .ResellMinStars == 0 ) {
return false
}
if !(s .Title == "" ) {
return false
}
if !(s .ReleasedBy == nil ) {
return false
}
if !(s .PerUserTotal == 0 ) {
return false
}
if !(s .PerUserRemains == 0 ) {
return false
}
if !(s .LockedUntilDate == 0 ) {
return false
}
if !(s .AuctionSlug == "" ) {
return false
}
if !(s .GiftsPerRound == 0 ) {
return false
}
if !(s .AuctionStartDate == 0 ) {
return false
}
if !(s .UpgradeVariants == 0 ) {
return false
}
if !(s .Background .Zero ()) {
return false
}
return true
}
func (s *StarGift ) String () string {
if s == nil {
return "StarGift(nil)"
}
type Alias StarGift
return fmt .Sprintf ("StarGift%+v" , Alias (*s ))
}
func (s *StarGift ) FillFrom (from interface {
GetLimited () (value bool )
GetSoldOut () (value bool )
GetBirthday () (value bool )
GetRequirePremium () (value bool )
GetLimitedPerUser () (value bool )
GetPeerColorAvailable () (value bool )
GetAuction () (value bool )
GetID () (value int64 )
GetSticker () (value DocumentClass )
GetStars () (value int64 )
GetAvailabilityRemains () (value int , ok bool )
GetAvailabilityTotal () (value int , ok bool )
GetAvailabilityResale () (value int64 , ok bool )
GetConvertStars () (value int64 )
GetFirstSaleDate () (value int , ok bool )
GetLastSaleDate () (value int , ok bool )
GetUpgradeStars () (value int64 , ok bool )
GetResellMinStars () (value int64 , ok bool )
GetTitle () (value string , ok bool )
GetReleasedBy () (value PeerClass , ok bool )
GetPerUserTotal () (value int , ok bool )
GetPerUserRemains () (value int , ok bool )
GetLockedUntilDate () (value int , ok bool )
GetAuctionSlug () (value string , ok bool )
GetGiftsPerRound () (value int , ok bool )
GetAuctionStartDate () (value int , ok bool )
GetUpgradeVariants () (value int , ok bool )
GetBackground () (value StarGiftBackground , ok bool )
}) {
s .Limited = from .GetLimited ()
s .SoldOut = from .GetSoldOut ()
s .Birthday = from .GetBirthday ()
s .RequirePremium = from .GetRequirePremium ()
s .LimitedPerUser = from .GetLimitedPerUser ()
s .PeerColorAvailable = from .GetPeerColorAvailable ()
s .Auction = from .GetAuction ()
s .ID = from .GetID ()
s .Sticker = from .GetSticker ()
s .Stars = from .GetStars ()
if val , ok := from .GetAvailabilityRemains (); ok {
s .AvailabilityRemains = val
}
if val , ok := from .GetAvailabilityTotal (); ok {
s .AvailabilityTotal = val
}
if val , ok := from .GetAvailabilityResale (); ok {
s .AvailabilityResale = val
}
s .ConvertStars = from .GetConvertStars ()
if val , ok := from .GetFirstSaleDate (); ok {
s .FirstSaleDate = val
}
if val , ok := from .GetLastSaleDate (); ok {
s .LastSaleDate = val
}
if val , ok := from .GetUpgradeStars (); ok {
s .UpgradeStars = val
}
if val , ok := from .GetResellMinStars (); ok {
s .ResellMinStars = val
}
if val , ok := from .GetTitle (); ok {
s .Title = val
}
if val , ok := from .GetReleasedBy (); ok {
s .ReleasedBy = val
}
if val , ok := from .GetPerUserTotal (); ok {
s .PerUserTotal = val
}
if val , ok := from .GetPerUserRemains (); ok {
s .PerUserRemains = val
}
if val , ok := from .GetLockedUntilDate (); ok {
s .LockedUntilDate = val
}
if val , ok := from .GetAuctionSlug (); ok {
s .AuctionSlug = val
}
if val , ok := from .GetGiftsPerRound (); ok {
s .GiftsPerRound = val
}
if val , ok := from .GetAuctionStartDate (); ok {
s .AuctionStartDate = val
}
if val , ok := from .GetUpgradeVariants (); ok {
s .UpgradeVariants = val
}
if val , ok := from .GetBackground (); ok {
s .Background = val
}
}
func (*StarGift ) TypeID () uint32 {
return StarGiftTypeID
}
func (*StarGift ) TypeName () string {
return "starGift"
}
func (s *StarGift ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "starGift" ,
ID : StarGiftTypeID ,
}
if s == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "Limited" ,
SchemaName : "limited" ,
Null : !s .Flags .Has (0 ),
},
{
Name : "SoldOut" ,
SchemaName : "sold_out" ,
Null : !s .Flags .Has (1 ),
},
{
Name : "Birthday" ,
SchemaName : "birthday" ,
Null : !s .Flags .Has (2 ),
},
{
Name : "RequirePremium" ,
SchemaName : "require_premium" ,
Null : !s .Flags .Has (7 ),
},
{
Name : "LimitedPerUser" ,
SchemaName : "limited_per_user" ,
Null : !s .Flags .Has (8 ),
},
{
Name : "PeerColorAvailable" ,
SchemaName : "peer_color_available" ,
Null : !s .Flags .Has (10 ),
},
{
Name : "Auction" ,
SchemaName : "auction" ,
Null : !s .Flags .Has (11 ),
},
{
Name : "ID" ,
SchemaName : "id" ,
},
{
Name : "Sticker" ,
SchemaName : "sticker" ,
},
{
Name : "Stars" ,
SchemaName : "stars" ,
},
{
Name : "AvailabilityRemains" ,
SchemaName : "availability_remains" ,
Null : !s .Flags .Has (0 ),
},
{
Name : "AvailabilityTotal" ,
SchemaName : "availability_total" ,
Null : !s .Flags .Has (0 ),
},
{
Name : "AvailabilityResale" ,
SchemaName : "availability_resale" ,
Null : !s .Flags .Has (4 ),
},
{
Name : "ConvertStars" ,
SchemaName : "convert_stars" ,
},
{
Name : "FirstSaleDate" ,
SchemaName : "first_sale_date" ,
Null : !s .Flags .Has (1 ),
},
{
Name : "LastSaleDate" ,
SchemaName : "last_sale_date" ,
Null : !s .Flags .Has (1 ),
},
{
Name : "UpgradeStars" ,
SchemaName : "upgrade_stars" ,
Null : !s .Flags .Has (3 ),
},
{
Name : "ResellMinStars" ,
SchemaName : "resell_min_stars" ,
Null : !s .Flags .Has (4 ),
},
{
Name : "Title" ,
SchemaName : "title" ,
Null : !s .Flags .Has (5 ),
},
{
Name : "ReleasedBy" ,
SchemaName : "released_by" ,
Null : !s .Flags .Has (6 ),
},
{
Name : "PerUserTotal" ,
SchemaName : "per_user_total" ,
Null : !s .Flags .Has (8 ),
},
{
Name : "PerUserRemains" ,
SchemaName : "per_user_remains" ,
Null : !s .Flags .Has (8 ),
},
{
Name : "LockedUntilDate" ,
SchemaName : "locked_until_date" ,
Null : !s .Flags .Has (9 ),
},
{
Name : "AuctionSlug" ,
SchemaName : "auction_slug" ,
Null : !s .Flags .Has (11 ),
},
{
Name : "GiftsPerRound" ,
SchemaName : "gifts_per_round" ,
Null : !s .Flags .Has (11 ),
},
{
Name : "AuctionStartDate" ,
SchemaName : "auction_start_date" ,
Null : !s .Flags .Has (11 ),
},
{
Name : "UpgradeVariants" ,
SchemaName : "upgrade_variants" ,
Null : !s .Flags .Has (12 ),
},
{
Name : "Background" ,
SchemaName : "background" ,
Null : !s .Flags .Has (13 ),
},
}
return typ
}
func (s *StarGift ) SetFlags () {
if !(s .Limited == false ) {
s .Flags .Set (0 )
}
if !(s .SoldOut == false ) {
s .Flags .Set (1 )
}
if !(s .Birthday == false ) {
s .Flags .Set (2 )
}
if !(s .RequirePremium == false ) {
s .Flags .Set (7 )
}
if !(s .LimitedPerUser == false ) {
s .Flags .Set (8 )
}
if !(s .PeerColorAvailable == false ) {
s .Flags .Set (10 )
}
if !(s .Auction == false ) {
s .Flags .Set (11 )
}
if !(s .AvailabilityRemains == 0 ) {
s .Flags .Set (0 )
}
if !(s .AvailabilityTotal == 0 ) {
s .Flags .Set (0 )
}
if !(s .AvailabilityResale == 0 ) {
s .Flags .Set (4 )
}
if !(s .FirstSaleDate == 0 ) {
s .Flags .Set (1 )
}
if !(s .LastSaleDate == 0 ) {
s .Flags .Set (1 )
}
if !(s .UpgradeStars == 0 ) {
s .Flags .Set (3 )
}
if !(s .ResellMinStars == 0 ) {
s .Flags .Set (4 )
}
if !(s .Title == "" ) {
s .Flags .Set (5 )
}
if !(s .ReleasedBy == nil ) {
s .Flags .Set (6 )
}
if !(s .PerUserTotal == 0 ) {
s .Flags .Set (8 )
}
if !(s .PerUserRemains == 0 ) {
s .Flags .Set (8 )
}
if !(s .LockedUntilDate == 0 ) {
s .Flags .Set (9 )
}
if !(s .AuctionSlug == "" ) {
s .Flags .Set (11 )
}
if !(s .GiftsPerRound == 0 ) {
s .Flags .Set (11 )
}
if !(s .AuctionStartDate == 0 ) {
s .Flags .Set (11 )
}
if !(s .UpgradeVariants == 0 ) {
s .Flags .Set (12 )
}
if !(s .Background .Zero ()) {
s .Flags .Set (13 )
}
}
func (s *StarGift ) Encode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode starGift#313a9547 as nil" )
}
b .PutID (StarGiftTypeID )
return s .EncodeBare (b )
}
func (s *StarGift ) EncodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode starGift#313a9547 as nil" )
}
s .SetFlags ()
if err := s .Flags .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGift#313a9547: field flags: %w" , err )
}
b .PutLong (s .ID )
if s .Sticker == nil {
return fmt .Errorf ("unable to encode starGift#313a9547: field sticker is nil" )
}
if err := s .Sticker .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGift#313a9547: field sticker: %w" , err )
}
b .PutLong (s .Stars )
if s .Flags .Has (0 ) {
b .PutInt (s .AvailabilityRemains )
}
if s .Flags .Has (0 ) {
b .PutInt (s .AvailabilityTotal )
}
if s .Flags .Has (4 ) {
b .PutLong (s .AvailabilityResale )
}
b .PutLong (s .ConvertStars )
if s .Flags .Has (1 ) {
b .PutInt (s .FirstSaleDate )
}
if s .Flags .Has (1 ) {
b .PutInt (s .LastSaleDate )
}
if s .Flags .Has (3 ) {
b .PutLong (s .UpgradeStars )
}
if s .Flags .Has (4 ) {
b .PutLong (s .ResellMinStars )
}
if s .Flags .Has (5 ) {
b .PutString (s .Title )
}
if s .Flags .Has (6 ) {
if s .ReleasedBy == nil {
return fmt .Errorf ("unable to encode starGift#313a9547: field released_by is nil" )
}
if err := s .ReleasedBy .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGift#313a9547: field released_by: %w" , err )
}
}
if s .Flags .Has (8 ) {
b .PutInt (s .PerUserTotal )
}
if s .Flags .Has (8 ) {
b .PutInt (s .PerUserRemains )
}
if s .Flags .Has (9 ) {
b .PutInt (s .LockedUntilDate )
}
if s .Flags .Has (11 ) {
b .PutString (s .AuctionSlug )
}
if s .Flags .Has (11 ) {
b .PutInt (s .GiftsPerRound )
}
if s .Flags .Has (11 ) {
b .PutInt (s .AuctionStartDate )
}
if s .Flags .Has (12 ) {
b .PutInt (s .UpgradeVariants )
}
if s .Flags .Has (13 ) {
if err := s .Background .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGift#313a9547: field background: %w" , err )
}
}
return nil
}
func (s *StarGift ) Decode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode starGift#313a9547 to nil" )
}
if err := b .ConsumeID (StarGiftTypeID ); err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: %w" , err )
}
return s .DecodeBare (b )
}
func (s *StarGift ) DecodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode starGift#313a9547 to nil" )
}
{
if err := s .Flags .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field flags: %w" , err )
}
}
s .Limited = s .Flags .Has (0 )
s .SoldOut = s .Flags .Has (1 )
s .Birthday = s .Flags .Has (2 )
s .RequirePremium = s .Flags .Has (7 )
s .LimitedPerUser = s .Flags .Has (8 )
s .PeerColorAvailable = s .Flags .Has (10 )
s .Auction = s .Flags .Has (11 )
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field id: %w" , err )
}
s .ID = value
}
{
value , err := DecodeDocument (b )
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field sticker: %w" , err )
}
s .Sticker = value
}
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field stars: %w" , err )
}
s .Stars = value
}
if s .Flags .Has (0 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field availability_remains: %w" , err )
}
s .AvailabilityRemains = value
}
if s .Flags .Has (0 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field availability_total: %w" , err )
}
s .AvailabilityTotal = value
}
if s .Flags .Has (4 ) {
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field availability_resale: %w" , err )
}
s .AvailabilityResale = value
}
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field convert_stars: %w" , err )
}
s .ConvertStars = value
}
if s .Flags .Has (1 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field first_sale_date: %w" , err )
}
s .FirstSaleDate = value
}
if s .Flags .Has (1 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field last_sale_date: %w" , err )
}
s .LastSaleDate = value
}
if s .Flags .Has (3 ) {
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field upgrade_stars: %w" , err )
}
s .UpgradeStars = value
}
if s .Flags .Has (4 ) {
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field resell_min_stars: %w" , err )
}
s .ResellMinStars = value
}
if s .Flags .Has (5 ) {
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field title: %w" , err )
}
s .Title = value
}
if s .Flags .Has (6 ) {
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field released_by: %w" , err )
}
s .ReleasedBy = value
}
if s .Flags .Has (8 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field per_user_total: %w" , err )
}
s .PerUserTotal = value
}
if s .Flags .Has (8 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field per_user_remains: %w" , err )
}
s .PerUserRemains = value
}
if s .Flags .Has (9 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field locked_until_date: %w" , err )
}
s .LockedUntilDate = value
}
if s .Flags .Has (11 ) {
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field auction_slug: %w" , err )
}
s .AuctionSlug = value
}
if s .Flags .Has (11 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field gifts_per_round: %w" , err )
}
s .GiftsPerRound = value
}
if s .Flags .Has (11 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field auction_start_date: %w" , err )
}
s .AuctionStartDate = value
}
if s .Flags .Has (12 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field upgrade_variants: %w" , err )
}
s .UpgradeVariants = value
}
if s .Flags .Has (13 ) {
if err := s .Background .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode starGift#313a9547: field background: %w" , err )
}
}
return nil
}
func (s *StarGift ) SetLimited (value bool ) {
if value {
s .Flags .Set (0 )
s .Limited = true
} else {
s .Flags .Unset (0 )
s .Limited = false
}
}
func (s *StarGift ) GetLimited () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (0 )
}
func (s *StarGift ) SetSoldOut (value bool ) {
if value {
s .Flags .Set (1 )
s .SoldOut = true
} else {
s .Flags .Unset (1 )
s .SoldOut = false
}
}
func (s *StarGift ) GetSoldOut () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (1 )
}
func (s *StarGift ) SetBirthday (value bool ) {
if value {
s .Flags .Set (2 )
s .Birthday = true
} else {
s .Flags .Unset (2 )
s .Birthday = false
}
}
func (s *StarGift ) GetBirthday () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (2 )
}
func (s *StarGift ) SetRequirePremium (value bool ) {
if value {
s .Flags .Set (7 )
s .RequirePremium = true
} else {
s .Flags .Unset (7 )
s .RequirePremium = false
}
}
func (s *StarGift ) GetRequirePremium () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (7 )
}
func (s *StarGift ) SetLimitedPerUser (value bool ) {
if value {
s .Flags .Set (8 )
s .LimitedPerUser = true
} else {
s .Flags .Unset (8 )
s .LimitedPerUser = false
}
}
func (s *StarGift ) GetLimitedPerUser () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (8 )
}
func (s *StarGift ) SetPeerColorAvailable (value bool ) {
if value {
s .Flags .Set (10 )
s .PeerColorAvailable = true
} else {
s .Flags .Unset (10 )
s .PeerColorAvailable = false
}
}
func (s *StarGift ) GetPeerColorAvailable () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (10 )
}
func (s *StarGift ) SetAuction (value bool ) {
if value {
s .Flags .Set (11 )
s .Auction = true
} else {
s .Flags .Unset (11 )
s .Auction = false
}
}
func (s *StarGift ) GetAuction () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (11 )
}
func (s *StarGift ) GetID () (value int64 ) {
if s == nil {
return
}
return s .ID
}
func (s *StarGift ) GetSticker () (value DocumentClass ) {
if s == nil {
return
}
return s .Sticker
}
func (s *StarGift ) GetStars () (value int64 ) {
if s == nil {
return
}
return s .Stars
}
func (s *StarGift ) SetAvailabilityRemains (value int ) {
s .Flags .Set (0 )
s .AvailabilityRemains = value
}
func (s *StarGift ) GetAvailabilityRemains () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (0 ) {
return value , false
}
return s .AvailabilityRemains , true
}
func (s *StarGift ) SetAvailabilityTotal (value int ) {
s .Flags .Set (0 )
s .AvailabilityTotal = value
}
func (s *StarGift ) GetAvailabilityTotal () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (0 ) {
return value , false
}
return s .AvailabilityTotal , true
}
func (s *StarGift ) SetAvailabilityResale (value int64 ) {
s .Flags .Set (4 )
s .AvailabilityResale = value
}
func (s *StarGift ) GetAvailabilityResale () (value int64 , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (4 ) {
return value , false
}
return s .AvailabilityResale , true
}
func (s *StarGift ) GetConvertStars () (value int64 ) {
if s == nil {
return
}
return s .ConvertStars
}
func (s *StarGift ) SetFirstSaleDate (value int ) {
s .Flags .Set (1 )
s .FirstSaleDate = value
}
func (s *StarGift ) GetFirstSaleDate () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (1 ) {
return value , false
}
return s .FirstSaleDate , true
}
func (s *StarGift ) SetLastSaleDate (value int ) {
s .Flags .Set (1 )
s .LastSaleDate = value
}
func (s *StarGift ) GetLastSaleDate () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (1 ) {
return value , false
}
return s .LastSaleDate , true
}
func (s *StarGift ) SetUpgradeStars (value int64 ) {
s .Flags .Set (3 )
s .UpgradeStars = value
}
func (s *StarGift ) GetUpgradeStars () (value int64 , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (3 ) {
return value , false
}
return s .UpgradeStars , true
}
func (s *StarGift ) SetResellMinStars (value int64 ) {
s .Flags .Set (4 )
s .ResellMinStars = value
}
func (s *StarGift ) GetResellMinStars () (value int64 , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (4 ) {
return value , false
}
return s .ResellMinStars , true
}
func (s *StarGift ) SetTitle (value string ) {
s .Flags .Set (5 )
s .Title = value
}
func (s *StarGift ) GetTitle () (value string , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (5 ) {
return value , false
}
return s .Title , true
}
func (s *StarGift ) SetReleasedBy (value PeerClass ) {
s .Flags .Set (6 )
s .ReleasedBy = value
}
func (s *StarGift ) GetReleasedBy () (value PeerClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (6 ) {
return value , false
}
return s .ReleasedBy , true
}
func (s *StarGift ) SetPerUserTotal (value int ) {
s .Flags .Set (8 )
s .PerUserTotal = value
}
func (s *StarGift ) GetPerUserTotal () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (8 ) {
return value , false
}
return s .PerUserTotal , true
}
func (s *StarGift ) SetPerUserRemains (value int ) {
s .Flags .Set (8 )
s .PerUserRemains = value
}
func (s *StarGift ) GetPerUserRemains () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (8 ) {
return value , false
}
return s .PerUserRemains , true
}
func (s *StarGift ) SetLockedUntilDate (value int ) {
s .Flags .Set (9 )
s .LockedUntilDate = value
}
func (s *StarGift ) GetLockedUntilDate () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (9 ) {
return value , false
}
return s .LockedUntilDate , true
}
func (s *StarGift ) SetAuctionSlug (value string ) {
s .Flags .Set (11 )
s .AuctionSlug = value
}
func (s *StarGift ) GetAuctionSlug () (value string , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (11 ) {
return value , false
}
return s .AuctionSlug , true
}
func (s *StarGift ) SetGiftsPerRound (value int ) {
s .Flags .Set (11 )
s .GiftsPerRound = value
}
func (s *StarGift ) GetGiftsPerRound () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (11 ) {
return value , false
}
return s .GiftsPerRound , true
}
func (s *StarGift ) SetAuctionStartDate (value int ) {
s .Flags .Set (11 )
s .AuctionStartDate = value
}
func (s *StarGift ) GetAuctionStartDate () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (11 ) {
return value , false
}
return s .AuctionStartDate , true
}
func (s *StarGift ) SetUpgradeVariants (value int ) {
s .Flags .Set (12 )
s .UpgradeVariants = value
}
func (s *StarGift ) GetUpgradeVariants () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (12 ) {
return value , false
}
return s .UpgradeVariants , true
}
func (s *StarGift ) SetBackground (value StarGiftBackground ) {
s .Flags .Set (13 )
s .Background = value
}
func (s *StarGift ) GetBackground () (value StarGiftBackground , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (13 ) {
return value , false
}
return s .Background , true
}
type StarGiftUnique struct {
Flags bin .Fields
RequirePremium bool
ResaleTonOnly bool
ThemeAvailable bool
Burned bool
Crafted bool
ID int64
GiftID int64
Title string
Slug string
Num int
OwnerID PeerClass
OwnerName string
OwnerAddress string
Attributes []StarGiftAttributeClass
AvailabilityIssued int
AvailabilityTotal int
GiftAddress string
ResellAmount []StarsAmountClass
ReleasedBy PeerClass
ValueAmount int64
ValueCurrency string
ValueUsdAmount int64
ThemePeer PeerClass
PeerColor PeerColorClass
HostID PeerClass
OfferMinStars int
CraftChancePermille int
}
const StarGiftUniqueTypeID = 0x85f0a9cd
func (s StarGiftUnique ) construct () StarGiftClass { return &s }
var (
_ bin .Encoder = &StarGiftUnique {}
_ bin .Decoder = &StarGiftUnique {}
_ bin .BareEncoder = &StarGiftUnique {}
_ bin .BareDecoder = &StarGiftUnique {}
_ StarGiftClass = &StarGiftUnique {}
)
func (s *StarGiftUnique ) Zero () bool {
if s == nil {
return true
}
if !(s .Flags .Zero ()) {
return false
}
if !(s .RequirePremium == false ) {
return false
}
if !(s .ResaleTonOnly == false ) {
return false
}
if !(s .ThemeAvailable == false ) {
return false
}
if !(s .Burned == false ) {
return false
}
if !(s .Crafted == false ) {
return false
}
if !(s .ID == 0 ) {
return false
}
if !(s .GiftID == 0 ) {
return false
}
if !(s .Title == "" ) {
return false
}
if !(s .Slug == "" ) {
return false
}
if !(s .Num == 0 ) {
return false
}
if !(s .OwnerID == nil ) {
return false
}
if !(s .OwnerName == "" ) {
return false
}
if !(s .OwnerAddress == "" ) {
return false
}
if !(s .Attributes == nil ) {
return false
}
if !(s .AvailabilityIssued == 0 ) {
return false
}
if !(s .AvailabilityTotal == 0 ) {
return false
}
if !(s .GiftAddress == "" ) {
return false
}
if !(s .ResellAmount == nil ) {
return false
}
if !(s .ReleasedBy == nil ) {
return false
}
if !(s .ValueAmount == 0 ) {
return false
}
if !(s .ValueCurrency == "" ) {
return false
}
if !(s .ValueUsdAmount == 0 ) {
return false
}
if !(s .ThemePeer == nil ) {
return false
}
if !(s .PeerColor == nil ) {
return false
}
if !(s .HostID == nil ) {
return false
}
if !(s .OfferMinStars == 0 ) {
return false
}
if !(s .CraftChancePermille == 0 ) {
return false
}
return true
}
func (s *StarGiftUnique ) String () string {
if s == nil {
return "StarGiftUnique(nil)"
}
type Alias StarGiftUnique
return fmt .Sprintf ("StarGiftUnique%+v" , Alias (*s ))
}
func (s *StarGiftUnique ) FillFrom (from interface {
GetRequirePremium () (value bool )
GetResaleTonOnly () (value bool )
GetThemeAvailable () (value bool )
GetBurned () (value bool )
GetCrafted () (value bool )
GetID () (value int64 )
GetGiftID () (value int64 )
GetTitle () (value string )
GetSlug () (value string )
GetNum () (value int )
GetOwnerID () (value PeerClass , ok bool )
GetOwnerName () (value string , ok bool )
GetOwnerAddress () (value string , ok bool )
GetAttributes () (value []StarGiftAttributeClass )
GetAvailabilityIssued () (value int )
GetAvailabilityTotal () (value int )
GetGiftAddress () (value string , ok bool )
GetResellAmount () (value []StarsAmountClass , ok bool )
GetReleasedBy () (value PeerClass , ok bool )
GetValueAmount () (value int64 , ok bool )
GetValueCurrency () (value string , ok bool )
GetValueUsdAmount () (value int64 , ok bool )
GetThemePeer () (value PeerClass , ok bool )
GetPeerColor () (value PeerColorClass , ok bool )
GetHostID () (value PeerClass , ok bool )
GetOfferMinStars () (value int , ok bool )
GetCraftChancePermille () (value int , ok bool )
}) {
s .RequirePremium = from .GetRequirePremium ()
s .ResaleTonOnly = from .GetResaleTonOnly ()
s .ThemeAvailable = from .GetThemeAvailable ()
s .Burned = from .GetBurned ()
s .Crafted = from .GetCrafted ()
s .ID = from .GetID ()
s .GiftID = from .GetGiftID ()
s .Title = from .GetTitle ()
s .Slug = from .GetSlug ()
s .Num = from .GetNum ()
if val , ok := from .GetOwnerID (); ok {
s .OwnerID = val
}
if val , ok := from .GetOwnerName (); ok {
s .OwnerName = val
}
if val , ok := from .GetOwnerAddress (); ok {
s .OwnerAddress = val
}
s .Attributes = from .GetAttributes ()
s .AvailabilityIssued = from .GetAvailabilityIssued ()
s .AvailabilityTotal = from .GetAvailabilityTotal ()
if val , ok := from .GetGiftAddress (); ok {
s .GiftAddress = val
}
if val , ok := from .GetResellAmount (); ok {
s .ResellAmount = val
}
if val , ok := from .GetReleasedBy (); ok {
s .ReleasedBy = val
}
if val , ok := from .GetValueAmount (); ok {
s .ValueAmount = val
}
if val , ok := from .GetValueCurrency (); ok {
s .ValueCurrency = val
}
if val , ok := from .GetValueUsdAmount (); ok {
s .ValueUsdAmount = val
}
if val , ok := from .GetThemePeer (); ok {
s .ThemePeer = val
}
if val , ok := from .GetPeerColor (); ok {
s .PeerColor = val
}
if val , ok := from .GetHostID (); ok {
s .HostID = val
}
if val , ok := from .GetOfferMinStars (); ok {
s .OfferMinStars = val
}
if val , ok := from .GetCraftChancePermille (); ok {
s .CraftChancePermille = val
}
}
func (*StarGiftUnique ) TypeID () uint32 {
return StarGiftUniqueTypeID
}
func (*StarGiftUnique ) TypeName () string {
return "starGiftUnique"
}
func (s *StarGiftUnique ) TypeInfo () tdp .Type {
typ := tdp .Type {
Name : "starGiftUnique" ,
ID : StarGiftUniqueTypeID ,
}
if s == nil {
typ .Null = true
return typ
}
typ .Fields = []tdp .Field {
{
Name : "RequirePremium" ,
SchemaName : "require_premium" ,
Null : !s .Flags .Has (6 ),
},
{
Name : "ResaleTonOnly" ,
SchemaName : "resale_ton_only" ,
Null : !s .Flags .Has (7 ),
},
{
Name : "ThemeAvailable" ,
SchemaName : "theme_available" ,
Null : !s .Flags .Has (9 ),
},
{
Name : "Burned" ,
SchemaName : "burned" ,
Null : !s .Flags .Has (14 ),
},
{
Name : "Crafted" ,
SchemaName : "crafted" ,
Null : !s .Flags .Has (15 ),
},
{
Name : "ID" ,
SchemaName : "id" ,
},
{
Name : "GiftID" ,
SchemaName : "gift_id" ,
},
{
Name : "Title" ,
SchemaName : "title" ,
},
{
Name : "Slug" ,
SchemaName : "slug" ,
},
{
Name : "Num" ,
SchemaName : "num" ,
},
{
Name : "OwnerID" ,
SchemaName : "owner_id" ,
Null : !s .Flags .Has (0 ),
},
{
Name : "OwnerName" ,
SchemaName : "owner_name" ,
Null : !s .Flags .Has (1 ),
},
{
Name : "OwnerAddress" ,
SchemaName : "owner_address" ,
Null : !s .Flags .Has (2 ),
},
{
Name : "Attributes" ,
SchemaName : "attributes" ,
},
{
Name : "AvailabilityIssued" ,
SchemaName : "availability_issued" ,
},
{
Name : "AvailabilityTotal" ,
SchemaName : "availability_total" ,
},
{
Name : "GiftAddress" ,
SchemaName : "gift_address" ,
Null : !s .Flags .Has (3 ),
},
{
Name : "ResellAmount" ,
SchemaName : "resell_amount" ,
Null : !s .Flags .Has (4 ),
},
{
Name : "ReleasedBy" ,
SchemaName : "released_by" ,
Null : !s .Flags .Has (5 ),
},
{
Name : "ValueAmount" ,
SchemaName : "value_amount" ,
Null : !s .Flags .Has (8 ),
},
{
Name : "ValueCurrency" ,
SchemaName : "value_currency" ,
Null : !s .Flags .Has (8 ),
},
{
Name : "ValueUsdAmount" ,
SchemaName : "value_usd_amount" ,
Null : !s .Flags .Has (8 ),
},
{
Name : "ThemePeer" ,
SchemaName : "theme_peer" ,
Null : !s .Flags .Has (10 ),
},
{
Name : "PeerColor" ,
SchemaName : "peer_color" ,
Null : !s .Flags .Has (11 ),
},
{
Name : "HostID" ,
SchemaName : "host_id" ,
Null : !s .Flags .Has (12 ),
},
{
Name : "OfferMinStars" ,
SchemaName : "offer_min_stars" ,
Null : !s .Flags .Has (13 ),
},
{
Name : "CraftChancePermille" ,
SchemaName : "craft_chance_permille" ,
Null : !s .Flags .Has (16 ),
},
}
return typ
}
func (s *StarGiftUnique ) SetFlags () {
if !(s .RequirePremium == false ) {
s .Flags .Set (6 )
}
if !(s .ResaleTonOnly == false ) {
s .Flags .Set (7 )
}
if !(s .ThemeAvailable == false ) {
s .Flags .Set (9 )
}
if !(s .Burned == false ) {
s .Flags .Set (14 )
}
if !(s .Crafted == false ) {
s .Flags .Set (15 )
}
if !(s .OwnerID == nil ) {
s .Flags .Set (0 )
}
if !(s .OwnerName == "" ) {
s .Flags .Set (1 )
}
if !(s .OwnerAddress == "" ) {
s .Flags .Set (2 )
}
if !(s .GiftAddress == "" ) {
s .Flags .Set (3 )
}
if !(s .ResellAmount == nil ) {
s .Flags .Set (4 )
}
if !(s .ReleasedBy == nil ) {
s .Flags .Set (5 )
}
if !(s .ValueAmount == 0 ) {
s .Flags .Set (8 )
}
if !(s .ValueCurrency == "" ) {
s .Flags .Set (8 )
}
if !(s .ValueUsdAmount == 0 ) {
s .Flags .Set (8 )
}
if !(s .ThemePeer == nil ) {
s .Flags .Set (10 )
}
if !(s .PeerColor == nil ) {
s .Flags .Set (11 )
}
if !(s .HostID == nil ) {
s .Flags .Set (12 )
}
if !(s .OfferMinStars == 0 ) {
s .Flags .Set (13 )
}
if !(s .CraftChancePermille == 0 ) {
s .Flags .Set (16 )
}
}
func (s *StarGiftUnique ) Encode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode starGiftUnique#85f0a9cd as nil" )
}
b .PutID (StarGiftUniqueTypeID )
return s .EncodeBare (b )
}
func (s *StarGiftUnique ) EncodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't encode starGiftUnique#85f0a9cd as nil" )
}
s .SetFlags ()
if err := s .Flags .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field flags: %w" , err )
}
b .PutLong (s .ID )
b .PutLong (s .GiftID )
b .PutString (s .Title )
b .PutString (s .Slug )
b .PutInt (s .Num )
if s .Flags .Has (0 ) {
if s .OwnerID == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field owner_id is nil" )
}
if err := s .OwnerID .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field owner_id: %w" , err )
}
}
if s .Flags .Has (1 ) {
b .PutString (s .OwnerName )
}
if s .Flags .Has (2 ) {
b .PutString (s .OwnerAddress )
}
b .PutVectorHeader (len (s .Attributes ))
for idx , v := range s .Attributes {
if v == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field attributes element with index %d is nil" , idx )
}
if err := v .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field attributes element with index %d: %w" , idx , err )
}
}
b .PutInt (s .AvailabilityIssued )
b .PutInt (s .AvailabilityTotal )
if s .Flags .Has (3 ) {
b .PutString (s .GiftAddress )
}
if s .Flags .Has (4 ) {
b .PutVectorHeader (len (s .ResellAmount ))
for idx , v := range s .ResellAmount {
if v == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field resell_amount element with index %d is nil" , idx )
}
if err := v .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field resell_amount element with index %d: %w" , idx , err )
}
}
}
if s .Flags .Has (5 ) {
if s .ReleasedBy == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field released_by is nil" )
}
if err := s .ReleasedBy .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field released_by: %w" , err )
}
}
if s .Flags .Has (8 ) {
b .PutLong (s .ValueAmount )
}
if s .Flags .Has (8 ) {
b .PutString (s .ValueCurrency )
}
if s .Flags .Has (8 ) {
b .PutLong (s .ValueUsdAmount )
}
if s .Flags .Has (10 ) {
if s .ThemePeer == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field theme_peer is nil" )
}
if err := s .ThemePeer .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field theme_peer: %w" , err )
}
}
if s .Flags .Has (11 ) {
if s .PeerColor == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field peer_color is nil" )
}
if err := s .PeerColor .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field peer_color: %w" , err )
}
}
if s .Flags .Has (12 ) {
if s .HostID == nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field host_id is nil" )
}
if err := s .HostID .Encode (b ); err != nil {
return fmt .Errorf ("unable to encode starGiftUnique#85f0a9cd: field host_id: %w" , err )
}
}
if s .Flags .Has (13 ) {
b .PutInt (s .OfferMinStars )
}
if s .Flags .Has (16 ) {
b .PutInt (s .CraftChancePermille )
}
return nil
}
func (s *StarGiftUnique ) Decode (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode starGiftUnique#85f0a9cd to nil" )
}
if err := b .ConsumeID (StarGiftUniqueTypeID ); err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: %w" , err )
}
return s .DecodeBare (b )
}
func (s *StarGiftUnique ) DecodeBare (b *bin .Buffer ) error {
if s == nil {
return fmt .Errorf ("can't decode starGiftUnique#85f0a9cd to nil" )
}
{
if err := s .Flags .Decode (b ); err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field flags: %w" , err )
}
}
s .RequirePremium = s .Flags .Has (6 )
s .ResaleTonOnly = s .Flags .Has (7 )
s .ThemeAvailable = s .Flags .Has (9 )
s .Burned = s .Flags .Has (14 )
s .Crafted = s .Flags .Has (15 )
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field id: %w" , err )
}
s .ID = value
}
{
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field gift_id: %w" , err )
}
s .GiftID = value
}
{
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field title: %w" , err )
}
s .Title = value
}
{
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field slug: %w" , err )
}
s .Slug = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field num: %w" , err )
}
s .Num = value
}
if s .Flags .Has (0 ) {
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field owner_id: %w" , err )
}
s .OwnerID = value
}
if s .Flags .Has (1 ) {
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field owner_name: %w" , err )
}
s .OwnerName = value
}
if s .Flags .Has (2 ) {
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field owner_address: %w" , err )
}
s .OwnerAddress = value
}
{
headerLen , err := b .VectorHeader ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field attributes: %w" , err )
}
if headerLen > 0 {
s .Attributes = make ([]StarGiftAttributeClass , 0 , headerLen %bin .PreallocateLimit )
}
for idx := 0 ; idx < headerLen ; idx ++ {
value , err := DecodeStarGiftAttribute (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field attributes: %w" , err )
}
s .Attributes = append (s .Attributes , value )
}
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field availability_issued: %w" , err )
}
s .AvailabilityIssued = value
}
{
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field availability_total: %w" , err )
}
s .AvailabilityTotal = value
}
if s .Flags .Has (3 ) {
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field gift_address: %w" , err )
}
s .GiftAddress = value
}
if s .Flags .Has (4 ) {
headerLen , err := b .VectorHeader ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field resell_amount: %w" , err )
}
if headerLen > 0 {
s .ResellAmount = make ([]StarsAmountClass , 0 , headerLen %bin .PreallocateLimit )
}
for idx := 0 ; idx < headerLen ; idx ++ {
value , err := DecodeStarsAmount (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field resell_amount: %w" , err )
}
s .ResellAmount = append (s .ResellAmount , value )
}
}
if s .Flags .Has (5 ) {
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field released_by: %w" , err )
}
s .ReleasedBy = value
}
if s .Flags .Has (8 ) {
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field value_amount: %w" , err )
}
s .ValueAmount = value
}
if s .Flags .Has (8 ) {
value , err := b .String ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field value_currency: %w" , err )
}
s .ValueCurrency = value
}
if s .Flags .Has (8 ) {
value , err := b .Long ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field value_usd_amount: %w" , err )
}
s .ValueUsdAmount = value
}
if s .Flags .Has (10 ) {
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field theme_peer: %w" , err )
}
s .ThemePeer = value
}
if s .Flags .Has (11 ) {
value , err := DecodePeerColor (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field peer_color: %w" , err )
}
s .PeerColor = value
}
if s .Flags .Has (12 ) {
value , err := DecodePeer (b )
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field host_id: %w" , err )
}
s .HostID = value
}
if s .Flags .Has (13 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field offer_min_stars: %w" , err )
}
s .OfferMinStars = value
}
if s .Flags .Has (16 ) {
value , err := b .Int ()
if err != nil {
return fmt .Errorf ("unable to decode starGiftUnique#85f0a9cd: field craft_chance_permille: %w" , err )
}
s .CraftChancePermille = value
}
return nil
}
func (s *StarGiftUnique ) SetRequirePremium (value bool ) {
if value {
s .Flags .Set (6 )
s .RequirePremium = true
} else {
s .Flags .Unset (6 )
s .RequirePremium = false
}
}
func (s *StarGiftUnique ) GetRequirePremium () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (6 )
}
func (s *StarGiftUnique ) SetResaleTonOnly (value bool ) {
if value {
s .Flags .Set (7 )
s .ResaleTonOnly = true
} else {
s .Flags .Unset (7 )
s .ResaleTonOnly = false
}
}
func (s *StarGiftUnique ) GetResaleTonOnly () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (7 )
}
func (s *StarGiftUnique ) SetThemeAvailable (value bool ) {
if value {
s .Flags .Set (9 )
s .ThemeAvailable = true
} else {
s .Flags .Unset (9 )
s .ThemeAvailable = false
}
}
func (s *StarGiftUnique ) GetThemeAvailable () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (9 )
}
func (s *StarGiftUnique ) SetBurned (value bool ) {
if value {
s .Flags .Set (14 )
s .Burned = true
} else {
s .Flags .Unset (14 )
s .Burned = false
}
}
func (s *StarGiftUnique ) GetBurned () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (14 )
}
func (s *StarGiftUnique ) SetCrafted (value bool ) {
if value {
s .Flags .Set (15 )
s .Crafted = true
} else {
s .Flags .Unset (15 )
s .Crafted = false
}
}
func (s *StarGiftUnique ) GetCrafted () (value bool ) {
if s == nil {
return
}
return s .Flags .Has (15 )
}
func (s *StarGiftUnique ) GetID () (value int64 ) {
if s == nil {
return
}
return s .ID
}
func (s *StarGiftUnique ) GetGiftID () (value int64 ) {
if s == nil {
return
}
return s .GiftID
}
func (s *StarGiftUnique ) GetTitle () (value string ) {
if s == nil {
return
}
return s .Title
}
func (s *StarGiftUnique ) GetSlug () (value string ) {
if s == nil {
return
}
return s .Slug
}
func (s *StarGiftUnique ) GetNum () (value int ) {
if s == nil {
return
}
return s .Num
}
func (s *StarGiftUnique ) SetOwnerID (value PeerClass ) {
s .Flags .Set (0 )
s .OwnerID = value
}
func (s *StarGiftUnique ) GetOwnerID () (value PeerClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (0 ) {
return value , false
}
return s .OwnerID , true
}
func (s *StarGiftUnique ) SetOwnerName (value string ) {
s .Flags .Set (1 )
s .OwnerName = value
}
func (s *StarGiftUnique ) GetOwnerName () (value string , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (1 ) {
return value , false
}
return s .OwnerName , true
}
func (s *StarGiftUnique ) SetOwnerAddress (value string ) {
s .Flags .Set (2 )
s .OwnerAddress = value
}
func (s *StarGiftUnique ) GetOwnerAddress () (value string , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (2 ) {
return value , false
}
return s .OwnerAddress , true
}
func (s *StarGiftUnique ) GetAttributes () (value []StarGiftAttributeClass ) {
if s == nil {
return
}
return s .Attributes
}
func (s *StarGiftUnique ) GetAvailabilityIssued () (value int ) {
if s == nil {
return
}
return s .AvailabilityIssued
}
func (s *StarGiftUnique ) GetAvailabilityTotal () (value int ) {
if s == nil {
return
}
return s .AvailabilityTotal
}
func (s *StarGiftUnique ) SetGiftAddress (value string ) {
s .Flags .Set (3 )
s .GiftAddress = value
}
func (s *StarGiftUnique ) GetGiftAddress () (value string , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (3 ) {
return value , false
}
return s .GiftAddress , true
}
func (s *StarGiftUnique ) SetResellAmount (value []StarsAmountClass ) {
s .Flags .Set (4 )
s .ResellAmount = value
}
func (s *StarGiftUnique ) GetResellAmount () (value []StarsAmountClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (4 ) {
return value , false
}
return s .ResellAmount , true
}
func (s *StarGiftUnique ) SetReleasedBy (value PeerClass ) {
s .Flags .Set (5 )
s .ReleasedBy = value
}
func (s *StarGiftUnique ) GetReleasedBy () (value PeerClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (5 ) {
return value , false
}
return s .ReleasedBy , true
}
func (s *StarGiftUnique ) SetValueAmount (value int64 ) {
s .Flags .Set (8 )
s .ValueAmount = value
}
func (s *StarGiftUnique ) GetValueAmount () (value int64 , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (8 ) {
return value , false
}
return s .ValueAmount , true
}
func (s *StarGiftUnique ) SetValueCurrency (value string ) {
s .Flags .Set (8 )
s .ValueCurrency = value
}
func (s *StarGiftUnique ) GetValueCurrency () (value string , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (8 ) {
return value , false
}
return s .ValueCurrency , true
}
func (s *StarGiftUnique ) SetValueUsdAmount (value int64 ) {
s .Flags .Set (8 )
s .ValueUsdAmount = value
}
func (s *StarGiftUnique ) GetValueUsdAmount () (value int64 , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (8 ) {
return value , false
}
return s .ValueUsdAmount , true
}
func (s *StarGiftUnique ) SetThemePeer (value PeerClass ) {
s .Flags .Set (10 )
s .ThemePeer = value
}
func (s *StarGiftUnique ) GetThemePeer () (value PeerClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (10 ) {
return value , false
}
return s .ThemePeer , true
}
func (s *StarGiftUnique ) SetPeerColor (value PeerColorClass ) {
s .Flags .Set (11 )
s .PeerColor = value
}
func (s *StarGiftUnique ) GetPeerColor () (value PeerColorClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (11 ) {
return value , false
}
return s .PeerColor , true
}
func (s *StarGiftUnique ) SetHostID (value PeerClass ) {
s .Flags .Set (12 )
s .HostID = value
}
func (s *StarGiftUnique ) GetHostID () (value PeerClass , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (12 ) {
return value , false
}
return s .HostID , true
}
func (s *StarGiftUnique ) SetOfferMinStars (value int ) {
s .Flags .Set (13 )
s .OfferMinStars = value
}
func (s *StarGiftUnique ) GetOfferMinStars () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (13 ) {
return value , false
}
return s .OfferMinStars , true
}
func (s *StarGiftUnique ) SetCraftChancePermille (value int ) {
s .Flags .Set (16 )
s .CraftChancePermille = value
}
func (s *StarGiftUnique ) GetCraftChancePermille () (value int , ok bool ) {
if s == nil {
return
}
if !s .Flags .Has (16 ) {
return value , false
}
return s .CraftChancePermille , true
}
func (s *StarGiftUnique ) MapAttributes () (value StarGiftAttributeClassArray ) {
return StarGiftAttributeClassArray (s .Attributes )
}
func (s *StarGiftUnique ) MapResellAmount () (value StarsAmountClassArray , ok bool ) {
if !s .Flags .Has (4 ) {
return value , false
}
return StarsAmountClassArray (s .ResellAmount ), true
}
const StarGiftClassName = "StarGift"
type StarGiftClass interface {
bin .Encoder
bin .Decoder
bin .BareEncoder
bin .BareDecoder
construct () StarGiftClass
TypeID () uint32
TypeName () string
String () string
Zero () bool
GetRequirePremium () (value bool )
GetID () (value int64 )
GetReleasedBy () (value PeerClass , ok bool )
}
func (s *StarGift ) AsInputStarGiftAuction () *InputStarGiftAuction {
value := new (InputStarGiftAuction )
value .GiftID = s .GetID ()
return value
}
func DecodeStarGift (buf *bin .Buffer ) (StarGiftClass , error ) {
id , err := buf .PeekID ()
if err != nil {
return nil , err
}
switch id {
case StarGiftTypeID :
v := StarGift {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode StarGiftClass: %w" , err )
}
return &v , nil
case StarGiftUniqueTypeID :
v := StarGiftUnique {}
if err := v .Decode (buf ); err != nil {
return nil , fmt .Errorf ("unable to decode StarGiftClass: %w" , err )
}
return &v , nil
default :
return nil , fmt .Errorf ("unable to decode StarGiftClass: %w" , bin .NewUnexpectedID (id ))
}
}
type StarGiftBox struct {
StarGift StarGiftClass
}
func (b *StarGiftBox ) Decode (buf *bin .Buffer ) error {
if b == nil {
return fmt .Errorf ("unable to decode StarGiftBox to nil" )
}
v , err := DecodeStarGift (buf )
if err != nil {
return fmt .Errorf ("unable to decode boxed value: %w" , err )
}
b .StarGift = v
return nil
}
func (b *StarGiftBox ) Encode (buf *bin .Buffer ) error {
if b == nil || b .StarGift == nil {
return fmt .Errorf ("unable to encode StarGiftClass as nil" )
}
return b .StarGift .Encode (buf )
}
The pages are generated with Golds v0.8.4 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .