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  PremiumGetUserBoostsRequest  struct  { 
	 
	Peer  InputPeerClass  
	 
	UserID  InputUserClass  
} 
 
 
const  PremiumGetUserBoostsRequestTypeID  = 0x39854d1f  
 
 
var  ( 
	_ bin .Encoder      = &PremiumGetUserBoostsRequest {} 
	_ bin .Decoder      = &PremiumGetUserBoostsRequest {} 
	_ bin .BareEncoder  = &PremiumGetUserBoostsRequest {} 
	_ bin .BareDecoder  = &PremiumGetUserBoostsRequest {} 
) 
 
func  (g  *PremiumGetUserBoostsRequest ) Zero  () bool  { 
	if  g  == nil  { 
		return  true  
	} 
	if  !(g .Peer  == nil ) { 
		return  false  
	} 
	if  !(g .UserID  == nil ) { 
		return  false  
	} 
 
	return  true  
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) String  () string  { 
	if  g  == nil  { 
		return  "PremiumGetUserBoostsRequest(nil)"  
	} 
	type  Alias  PremiumGetUserBoostsRequest  
	return  fmt .Sprintf ("PremiumGetUserBoostsRequest%+v" , Alias (*g )) 
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) FillFrom  (from  interface  { 
	GetPeer () (value  InputPeerClass ) 
	GetUserID () (value  InputUserClass ) 
}) { 
	g .Peer  = from .GetPeer () 
	g .UserID  = from .GetUserID () 
} 
 
 
 
 
func  (*PremiumGetUserBoostsRequest ) TypeID  () uint32  { 
	return  PremiumGetUserBoostsRequestTypeID  
} 
 
 
func  (*PremiumGetUserBoostsRequest ) TypeName  () string  { 
	return  "premium.getUserBoosts"  
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) TypeInfo  () tdp .Type  { 
	typ  := tdp .Type { 
		Name : "premium.getUserBoosts" , 
		ID :   PremiumGetUserBoostsRequestTypeID , 
	} 
	if  g  == nil  { 
		typ .Null  = true  
		return  typ  
	} 
	typ .Fields  = []tdp .Field { 
		{ 
			Name :       "Peer" , 
			SchemaName : "peer" , 
		}, 
		{ 
			Name :       "UserID" , 
			SchemaName : "user_id" , 
		}, 
	} 
	return  typ  
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) Encode  (b  *bin .Buffer ) error  { 
	if  g  == nil  { 
		return  fmt .Errorf ("can't encode premium.getUserBoosts#39854d1f as nil" ) 
	} 
	b .PutID (PremiumGetUserBoostsRequestTypeID ) 
	return  g .EncodeBare (b ) 
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) EncodeBare  (b  *bin .Buffer ) error  { 
	if  g  == nil  { 
		return  fmt .Errorf ("can't encode premium.getUserBoosts#39854d1f as nil" ) 
	} 
	if  g .Peer  == nil  { 
		return  fmt .Errorf ("unable to encode premium.getUserBoosts#39854d1f: field peer is nil" ) 
	} 
	if  err  := g .Peer .Encode (b ); err  != nil  { 
		return  fmt .Errorf ("unable to encode premium.getUserBoosts#39854d1f: field peer: %w" , err ) 
	} 
	if  g .UserID  == nil  { 
		return  fmt .Errorf ("unable to encode premium.getUserBoosts#39854d1f: field user_id is nil" ) 
	} 
	if  err  := g .UserID .Encode (b ); err  != nil  { 
		return  fmt .Errorf ("unable to encode premium.getUserBoosts#39854d1f: field user_id: %w" , err ) 
	} 
	return  nil  
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) Decode  (b  *bin .Buffer ) error  { 
	if  g  == nil  { 
		return  fmt .Errorf ("can't decode premium.getUserBoosts#39854d1f to nil" ) 
	} 
	if  err  := b .ConsumeID (PremiumGetUserBoostsRequestTypeID ); err  != nil  { 
		return  fmt .Errorf ("unable to decode premium.getUserBoosts#39854d1f: %w" , err ) 
	} 
	return  g .DecodeBare (b ) 
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) DecodeBare  (b  *bin .Buffer ) error  { 
	if  g  == nil  { 
		return  fmt .Errorf ("can't decode premium.getUserBoosts#39854d1f to nil" ) 
	} 
	{ 
		value , err  := DecodeInputPeer (b ) 
		if  err  != nil  { 
			return  fmt .Errorf ("unable to decode premium.getUserBoosts#39854d1f: field peer: %w" , err ) 
		} 
		g .Peer  = value  
	} 
	{ 
		value , err  := DecodeInputUser (b ) 
		if  err  != nil  { 
			return  fmt .Errorf ("unable to decode premium.getUserBoosts#39854d1f: field user_id: %w" , err ) 
		} 
		g .UserID  = value  
	} 
	return  nil  
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) GetPeer  () (value  InputPeerClass ) { 
	if  g  == nil  { 
		return  
	} 
	return  g .Peer  
} 
 
 
func  (g  *PremiumGetUserBoostsRequest ) GetUserID  () (value  InputUserClass ) { 
	if  g  == nil  { 
		return  
	} 
	return  g .UserID  
} 
 
 
 
 
 
 
 
 
 
 
 
func  (c  *Client ) PremiumGetUserBoosts  (ctx  context .Context , request  *PremiumGetUserBoostsRequest ) (*PremiumBoostsList , error ) { 
	var  result  PremiumBoostsList  
 
	if  err  := c .rpc .Invoke (ctx , request , &result ); err  != nil  { 
		return  nil , err  
	} 
	return  &result , nil  
} 
  
The pages are generated with Golds   v0.6.7 . (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 @Go100and1  (reachable from the left QR code) to get the latest news of Golds .