package  tgimport  (	"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  Folder  struct  {		Flags  bin .Fields 		AutofillNewBroadcasts  bool 		AutofillPublicGroups  bool 		AutofillNewCorrespondents  bool 		ID  int 		Title  string 		Photo  ChatPhotoClass }const  FolderTypeID  = 0xff544e65 var  (	_ bin .Encoder      = &Folder {}	_ bin .Decoder      = &Folder {}	_ bin .BareEncoder  = &Folder {}	_ bin .BareDecoder  = &Folder {})func  (f  *Folder ) Zero bool  {	if  f  == nil  {		return  true 	}	if  !(f .Flags .Zero ()) {		return  false 	}	if  !(f .AutofillNewBroadcasts  == false ) {		return  false 	}	if  !(f .AutofillPublicGroups  == false ) {		return  false 	}	if  !(f .AutofillNewCorrespondents  == false ) {		return  false 	}	if  !(f .ID  == 0 ) {		return  false 	}	if  !(f .Title  == "" ) {		return  false 	}	if  !(f .Photo  == nil ) {		return  false 	}	return  true }func  (f  *Folder ) String string  {	if  f  == nil  {		return  "Folder(nil)" 	}	type  Alias  Folder 	return  fmt .Sprintf ("Folder%+v" , Alias (*f ))}func  (f  *Folder ) FillFrom from  interface  {	GetAutofillNewBroadcasts () (value  bool )	GetAutofillPublicGroups () (value  bool )	GetAutofillNewCorrespondents () (value  bool )	GetID () (value  int )	GetTitle () (value  string )	GetPhoto () (value  ChatPhotoClass , ok  bool )}) {	f .AutofillNewBroadcasts  = from .GetAutofillNewBroadcasts ()	f .AutofillPublicGroups  = from .GetAutofillPublicGroups ()	f .AutofillNewCorrespondents  = from .GetAutofillNewCorrespondents ()	f .ID  = from .GetID ()	f .Title  = from .GetTitle ()	if  val , ok  := from .GetPhoto (); ok  {		f .Photo  = val 	}}func  (*Folder ) TypeID uint32  {	return  FolderTypeID }func  (*Folder ) TypeName string  {	return  "folder" }func  (f  *Folder ) TypeInfo tdp .Type  {	typ  := tdp .Type {		Name : "folder" ,		ID :   FolderTypeID ,	}	if  f  == nil  {		typ .Null  = true 		return  typ 	}	typ .Fields  = []tdp .Field {		{			Name :       "AutofillNewBroadcasts" ,			SchemaName : "autofill_new_broadcasts" ,			Null :       !f .Flags .Has (0 ),		},		{			Name :       "AutofillPublicGroups" ,			SchemaName : "autofill_public_groups" ,			Null :       !f .Flags .Has (1 ),		},		{			Name :       "AutofillNewCorrespondents" ,			SchemaName : "autofill_new_correspondents" ,			Null :       !f .Flags .Has (2 ),		},		{			Name :       "ID" ,			SchemaName : "id" ,		},		{			Name :       "Title" ,			SchemaName : "title" ,		},		{			Name :       "Photo" ,			SchemaName : "photo" ,			Null :       !f .Flags .Has (3 ),		},	}	return  typ }func  (f  *Folder ) SetFlags 	if  !(f .AutofillNewBroadcasts  == false ) {		f .Flags .Set (0 )	}	if  !(f .AutofillPublicGroups  == false ) {		f .Flags .Set (1 )	}	if  !(f .AutofillNewCorrespondents  == false ) {		f .Flags .Set (2 )	}	if  !(f .Photo  == nil ) {		f .Flags .Set (3 )	}}func  (f  *Folder ) Encode b  *bin .Buffer ) error  {	if  f  == nil  {		return  fmt .Errorf ("can't encode folder#ff544e65 as nil" )	}	b .PutID (FolderTypeID )	return  f .EncodeBare (b )}func  (f  *Folder ) EncodeBare b  *bin .Buffer ) error  {	if  f  == nil  {		return  fmt .Errorf ("can't encode folder#ff544e65 as nil" )	}	f .SetFlags ()	if  err  := f .Flags .Encode (b ); err  != nil  {		return  fmt .Errorf ("unable to encode folder#ff544e65: field flags: %w" , err )	}	b .PutInt (f .ID )	b .PutString (f .Title )	if  f .Flags .Has (3 ) {		if  f .Photo  == nil  {			return  fmt .Errorf ("unable to encode folder#ff544e65: field photo is nil" )		}		if  err  := f .Photo .Encode (b ); err  != nil  {			return  fmt .Errorf ("unable to encode folder#ff544e65: field photo: %w" , err )		}	}	return  nil }func  (f  *Folder ) Decode b  *bin .Buffer ) error  {	if  f  == nil  {		return  fmt .Errorf ("can't decode folder#ff544e65 to nil" )	}	if  err  := b .ConsumeID (FolderTypeID ); err  != nil  {		return  fmt .Errorf ("unable to decode folder#ff544e65: %w" , err )	}	return  f .DecodeBare (b )}func  (f  *Folder ) DecodeBare b  *bin .Buffer ) error  {	if  f  == nil  {		return  fmt .Errorf ("can't decode folder#ff544e65 to nil" )	}	{		if  err  := f .Flags .Decode (b ); err  != nil  {			return  fmt .Errorf ("unable to decode folder#ff544e65: field flags: %w" , err )		}	}	f .AutofillNewBroadcasts  = f .Flags .Has (0 )	f .AutofillPublicGroups  = f .Flags .Has (1 )	f .AutofillNewCorrespondents  = f .Flags .Has (2 )	{		value , err  := b .Int ()		if  err  != nil  {			return  fmt .Errorf ("unable to decode folder#ff544e65: field id: %w" , err )		}		f .ID  = value 	}	{		value , err  := b .String ()		if  err  != nil  {			return  fmt .Errorf ("unable to decode folder#ff544e65: field title: %w" , err )		}		f .Title  = value 	}	if  f .Flags .Has (3 ) {		value , err  := DecodeChatPhoto (b )		if  err  != nil  {			return  fmt .Errorf ("unable to decode folder#ff544e65: field photo: %w" , err )		}		f .Photo  = value 	}	return  nil }func  (f  *Folder ) SetAutofillNewBroadcasts value  bool ) {	if  value  {		f .Flags .Set (0 )		f .AutofillNewBroadcasts  = true 	} else  {		f .Flags .Unset (0 )		f .AutofillNewBroadcasts  = false 	}}func  (f  *Folder ) GetAutofillNewBroadcasts value  bool ) {	if  f  == nil  {		return 	}	return  f .Flags .Has (0 )}func  (f  *Folder ) SetAutofillPublicGroups value  bool ) {	if  value  {		f .Flags .Set (1 )		f .AutofillPublicGroups  = true 	} else  {		f .Flags .Unset (1 )		f .AutofillPublicGroups  = false 	}}func  (f  *Folder ) GetAutofillPublicGroups value  bool ) {	if  f  == nil  {		return 	}	return  f .Flags .Has (1 )}func  (f  *Folder ) SetAutofillNewCorrespondents value  bool ) {	if  value  {		f .Flags .Set (2 )		f .AutofillNewCorrespondents  = true 	} else  {		f .Flags .Unset (2 )		f .AutofillNewCorrespondents  = false 	}}func  (f  *Folder ) GetAutofillNewCorrespondents value  bool ) {	if  f  == nil  {		return 	}	return  f .Flags .Has (2 )}func  (f  *Folder ) GetID value  int ) {	if  f  == nil  {		return 	}	return  f .ID }func  (f  *Folder ) GetTitle value  string ) {	if  f  == nil  {		return 	}	return  f .Title }func  (f  *Folder ) SetPhoto value  ChatPhotoClass ) {	f .Flags .Set (3 )	f .Photo  = value }func  (f  *Folder ) GetPhoto value  ChatPhotoClass , ok  bool ) {	if  f  == nil  {		return 	}	if  !f .Flags .Has (3 ) {		return  value , false 	}	return  f .Photo , true }func  (f  *Folder ) GetPhotoAsNotEmpty ChatPhoto , bool ) {	if  value , ok  := f .GetPhoto (); ok  {		return  value .AsNotEmpty ()	}	return  nil , false } 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 .