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  MessagesToggleDialogPinRequest  struct  { 
	 
 
 
 
	Flags  bin .Fields  
	 
	Pinned  bool  
	 
	Peer  InputDialogPeerClass  
} 
 
 
const  MessagesToggleDialogPinRequestTypeID  = 0xa731e257  
 
 
var  ( 
	_ bin .Encoder      = &MessagesToggleDialogPinRequest {} 
	_ bin .Decoder      = &MessagesToggleDialogPinRequest {} 
	_ bin .BareEncoder  = &MessagesToggleDialogPinRequest {} 
	_ bin .BareDecoder  = &MessagesToggleDialogPinRequest {} 
) 
 
func  (t  *MessagesToggleDialogPinRequest ) Zero  () bool  { 
	if  t  == nil  { 
		return  true  
	} 
	if  !(t .Flags .Zero ()) { 
		return  false  
	} 
	if  !(t .Pinned  == false ) { 
		return  false  
	} 
	if  !(t .Peer  == nil ) { 
		return  false  
	} 
 
	return  true  
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) String  () string  { 
	if  t  == nil  { 
		return  "MessagesToggleDialogPinRequest(nil)"  
	} 
	type  Alias  MessagesToggleDialogPinRequest  
	return  fmt .Sprintf ("MessagesToggleDialogPinRequest%+v" , Alias (*t )) 
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) FillFrom  (from  interface  { 
	GetPinned () (value  bool ) 
	GetPeer () (value  InputDialogPeerClass ) 
}) { 
	t .Pinned  = from .GetPinned () 
	t .Peer  = from .GetPeer () 
} 
 
 
 
 
func  (*MessagesToggleDialogPinRequest ) TypeID  () uint32  { 
	return  MessagesToggleDialogPinRequestTypeID  
} 
 
 
func  (*MessagesToggleDialogPinRequest ) TypeName  () string  { 
	return  "messages.toggleDialogPin"  
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) TypeInfo  () tdp .Type  { 
	typ  := tdp .Type { 
		Name : "messages.toggleDialogPin" , 
		ID :   MessagesToggleDialogPinRequestTypeID , 
	} 
	if  t  == nil  { 
		typ .Null  = true  
		return  typ  
	} 
	typ .Fields  = []tdp .Field { 
		{ 
			Name :       "Pinned" , 
			SchemaName : "pinned" , 
			Null :       !t .Flags .Has (0 ), 
		}, 
		{ 
			Name :       "Peer" , 
			SchemaName : "peer" , 
		}, 
	} 
	return  typ  
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) SetFlags  () { 
	if  !(t .Pinned  == false ) { 
		t .Flags .Set (0 ) 
	} 
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) Encode  (b  *bin .Buffer ) error  { 
	if  t  == nil  { 
		return  fmt .Errorf ("can't encode messages.toggleDialogPin#a731e257 as nil" ) 
	} 
	b .PutID (MessagesToggleDialogPinRequestTypeID ) 
	return  t .EncodeBare (b ) 
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) EncodeBare  (b  *bin .Buffer ) error  { 
	if  t  == nil  { 
		return  fmt .Errorf ("can't encode messages.toggleDialogPin#a731e257 as nil" ) 
	} 
	t .SetFlags () 
	if  err  := t .Flags .Encode (b ); err  != nil  { 
		return  fmt .Errorf ("unable to encode messages.toggleDialogPin#a731e257: field flags: %w" , err ) 
	} 
	if  t .Peer  == nil  { 
		return  fmt .Errorf ("unable to encode messages.toggleDialogPin#a731e257: field peer is nil" ) 
	} 
	if  err  := t .Peer .Encode (b ); err  != nil  { 
		return  fmt .Errorf ("unable to encode messages.toggleDialogPin#a731e257: field peer: %w" , err ) 
	} 
	return  nil  
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) Decode  (b  *bin .Buffer ) error  { 
	if  t  == nil  { 
		return  fmt .Errorf ("can't decode messages.toggleDialogPin#a731e257 to nil" ) 
	} 
	if  err  := b .ConsumeID (MessagesToggleDialogPinRequestTypeID ); err  != nil  { 
		return  fmt .Errorf ("unable to decode messages.toggleDialogPin#a731e257: %w" , err ) 
	} 
	return  t .DecodeBare (b ) 
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) DecodeBare  (b  *bin .Buffer ) error  { 
	if  t  == nil  { 
		return  fmt .Errorf ("can't decode messages.toggleDialogPin#a731e257 to nil" ) 
	} 
	{ 
		if  err  := t .Flags .Decode (b ); err  != nil  { 
			return  fmt .Errorf ("unable to decode messages.toggleDialogPin#a731e257: field flags: %w" , err ) 
		} 
	} 
	t .Pinned  = t .Flags .Has (0 ) 
	{ 
		value , err  := DecodeInputDialogPeer (b ) 
		if  err  != nil  { 
			return  fmt .Errorf ("unable to decode messages.toggleDialogPin#a731e257: field peer: %w" , err ) 
		} 
		t .Peer  = value  
	} 
	return  nil  
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) SetPinned  (value  bool ) { 
	if  value  { 
		t .Flags .Set (0 ) 
		t .Pinned  = true  
	} else  { 
		t .Flags .Unset (0 ) 
		t .Pinned  = false  
	} 
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) GetPinned  () (value  bool ) { 
	if  t  == nil  { 
		return  
	} 
	return  t .Flags .Has (0 ) 
} 
 
 
func  (t  *MessagesToggleDialogPinRequest ) GetPeer  () (value  InputDialogPeerClass ) { 
	if  t  == nil  { 
		return  
	} 
	return  t .Peer  
} 
 
 
 
 
 
 
 
 
 
 
 
 
func  (c  *Client ) MessagesToggleDialogPin  (ctx  context .Context , request  *MessagesToggleDialogPinRequest ) (bool , error ) { 
	var  result  BoolBox  
 
	if  err  := c .rpc .Invoke (ctx , request , &result ); err  != nil  { 
		return  false , err  
	} 
	_ , ok  := result .Bool .(*BoolTrue ) 
	return  ok , 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 .