This is a refactor of samhofi.us/x/keybase/v2 that takes advantage of the libkeybase performance improvements.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

884 lines
25 KiB

// Auto-generated to Go types using avdl-compiler v1.4.6 (https://github.com/keybase/node-avdl-compiler)
// Input file: ../../../../../../client/protocol/avdl/keybase1/home.avdl
package keybase1
import (
"errors"
"fmt"
)
type HomeScreenItemID string
func (o HomeScreenItemID) DeepCopy() HomeScreenItemID {
return o
}
type HomeScreenItemType int
const (
HomeScreenItemType_TODO HomeScreenItemType = 1
HomeScreenItemType_PEOPLE HomeScreenItemType = 2
HomeScreenItemType_ANNOUNCEMENT HomeScreenItemType = 3
)
func (o HomeScreenItemType) DeepCopy() HomeScreenItemType { return o }
var HomeScreenItemTypeMap = map[string]HomeScreenItemType{
"TODO": 1,
"PEOPLE": 2,
"ANNOUNCEMENT": 3,
}
var HomeScreenItemTypeRevMap = map[HomeScreenItemType]string{
1: "TODO",
2: "PEOPLE",
3: "ANNOUNCEMENT",
}
func (e HomeScreenItemType) String() string {
if v, ok := HomeScreenItemTypeRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
type HomeScreenItemData struct {
T__ HomeScreenItemType `codec:"t" json:"t"`
Todo__ *HomeScreenTodo `codec:"todo,omitempty" json:"todo,omitempty"`
People__ *HomeScreenPeopleNotification `codec:"people,omitempty" json:"people,omitempty"`
Announcement__ *HomeScreenAnnouncement `codec:"announcement,omitempty" json:"announcement,omitempty"`
}
func (o *HomeScreenItemData) T() (ret HomeScreenItemType, err error) {
switch o.T__ {
case HomeScreenItemType_TODO:
if o.Todo__ == nil {
err = errors.New("unexpected nil value for Todo__")
return ret, err
}
case HomeScreenItemType_PEOPLE:
if o.People__ == nil {
err = errors.New("unexpected nil value for People__")
return ret, err
}
case HomeScreenItemType_ANNOUNCEMENT:
if o.Announcement__ == nil {
err = errors.New("unexpected nil value for Announcement__")
return ret, err
}
}
return o.T__, nil
}
func (o HomeScreenItemData) Todo() (res HomeScreenTodo) {
if o.T__ != HomeScreenItemType_TODO {
panic("wrong case accessed")
}
if o.Todo__ == nil {
return
}
return *o.Todo__
}
func (o HomeScreenItemData) People() (res HomeScreenPeopleNotification) {
if o.T__ != HomeScreenItemType_PEOPLE {
panic("wrong case accessed")
}
if o.People__ == nil {
return
}
return *o.People__
}
func (o HomeScreenItemData) Announcement() (res HomeScreenAnnouncement) {
if o.T__ != HomeScreenItemType_ANNOUNCEMENT {
panic("wrong case accessed")
}
if o.Announcement__ == nil {
return
}
return *o.Announcement__
}
func NewHomeScreenItemDataWithTodo(v HomeScreenTodo) HomeScreenItemData {
return HomeScreenItemData{
T__: HomeScreenItemType_TODO,
Todo__: &v,
}
}
func NewHomeScreenItemDataWithPeople(v HomeScreenPeopleNotification) HomeScreenItemData {
return HomeScreenItemData{
T__: HomeScreenItemType_PEOPLE,
People__: &v,
}
}
func NewHomeScreenItemDataWithAnnouncement(v HomeScreenAnnouncement) HomeScreenItemData {
return HomeScreenItemData{
T__: HomeScreenItemType_ANNOUNCEMENT,
Announcement__: &v,
}
}
func NewHomeScreenItemDataDefault(t HomeScreenItemType) HomeScreenItemData {
return HomeScreenItemData{
T__: t,
}
}
func (o HomeScreenItemData) DeepCopy() HomeScreenItemData {
return HomeScreenItemData{
T__: o.T__.DeepCopy(),
Todo__: (func(x *HomeScreenTodo) *HomeScreenTodo {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Todo__),
People__: (func(x *HomeScreenPeopleNotification) *HomeScreenPeopleNotification {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.People__),
Announcement__: (func(x *HomeScreenAnnouncement) *HomeScreenAnnouncement {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Announcement__),
}
}
type HomeScreenItemDataExt struct {
T__ HomeScreenItemType `codec:"t" json:"t"`
Todo__ *HomeScreenTodoExt `codec:"todo,omitempty" json:"todo,omitempty"`
}
func (o *HomeScreenItemDataExt) T() (ret HomeScreenItemType, err error) {
switch o.T__ {
case HomeScreenItemType_TODO:
if o.Todo__ == nil {
err = errors.New("unexpected nil value for Todo__")
return ret, err
}
}
return o.T__, nil
}
func (o HomeScreenItemDataExt) Todo() (res HomeScreenTodoExt) {
if o.T__ != HomeScreenItemType_TODO {
panic("wrong case accessed")
}
if o.Todo__ == nil {
return
}
return *o.Todo__
}
func NewHomeScreenItemDataExtWithTodo(v HomeScreenTodoExt) HomeScreenItemDataExt {
return HomeScreenItemDataExt{
T__: HomeScreenItemType_TODO,
Todo__: &v,
}
}
func NewHomeScreenItemDataExtDefault(t HomeScreenItemType) HomeScreenItemDataExt {
return HomeScreenItemDataExt{
T__: t,
}
}
func (o HomeScreenItemDataExt) DeepCopy() HomeScreenItemDataExt {
return HomeScreenItemDataExt{
T__: o.T__.DeepCopy(),
Todo__: (func(x *HomeScreenTodoExt) *HomeScreenTodoExt {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Todo__),
}
}
type AppLinkType int
const (
AppLinkType_NONE AppLinkType = 0
AppLinkType_PEOPLE AppLinkType = 1
AppLinkType_CHAT AppLinkType = 2
AppLinkType_FILES AppLinkType = 3
AppLinkType_WALLET AppLinkType = 4
AppLinkType_GIT AppLinkType = 5
AppLinkType_DEVICES AppLinkType = 6
AppLinkType_SETTINGS AppLinkType = 7
AppLinkType_TEAMS AppLinkType = 8
)
func (o AppLinkType) DeepCopy() AppLinkType { return o }
var AppLinkTypeMap = map[string]AppLinkType{
"NONE": 0,
"PEOPLE": 1,
"CHAT": 2,
"FILES": 3,
"WALLET": 4,
"GIT": 5,
"DEVICES": 6,
"SETTINGS": 7,
"TEAMS": 8,
}
var AppLinkTypeRevMap = map[AppLinkType]string{
0: "NONE",
1: "PEOPLE",
2: "CHAT",
3: "FILES",
4: "WALLET",
5: "GIT",
6: "DEVICES",
7: "SETTINGS",
8: "TEAMS",
}
func (e AppLinkType) String() string {
if v, ok := AppLinkTypeRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
type HomeScreenAnnouncementID int
func (o HomeScreenAnnouncementID) DeepCopy() HomeScreenAnnouncementID {
return o
}
type HomeScreenAnnouncementVersion int
func (o HomeScreenAnnouncementVersion) DeepCopy() HomeScreenAnnouncementVersion {
return o
}
type HomeScreenAnnouncement struct {
Id HomeScreenAnnouncementID `codec:"id" json:"id"`
Version HomeScreenAnnouncementVersion `codec:"version" json:"version"`
AppLink AppLinkType `codec:"appLink" json:"appLink"`
ConfirmLabel string `codec:"confirmLabel" json:"confirmLabel"`
Dismissable bool `codec:"dismissable" json:"dismissable"`
IconUrl string `codec:"iconUrl" json:"iconUrl"`
Text string `codec:"text" json:"text"`
Url string `codec:"url" json:"url"`
}
func (o HomeScreenAnnouncement) DeepCopy() HomeScreenAnnouncement {
return HomeScreenAnnouncement{
Id: o.Id.DeepCopy(),
Version: o.Version.DeepCopy(),
AppLink: o.AppLink.DeepCopy(),
ConfirmLabel: o.ConfirmLabel,
Dismissable: o.Dismissable,
IconUrl: o.IconUrl,
Text: o.Text,
Url: o.Url,
}
}
type HomeScreenTodoType int
const (
HomeScreenTodoType_NONE HomeScreenTodoType = 0
HomeScreenTodoType_BIO HomeScreenTodoType = 1
HomeScreenTodoType_PROOF HomeScreenTodoType = 2
HomeScreenTodoType_DEVICE HomeScreenTodoType = 3
HomeScreenTodoType_FOLLOW HomeScreenTodoType = 4
HomeScreenTodoType_PAPERKEY HomeScreenTodoType = 6
HomeScreenTodoType_TEAM HomeScreenTodoType = 7
HomeScreenTodoType_FOLDER HomeScreenTodoType = 8
HomeScreenTodoType_GIT_REPO HomeScreenTodoType = 9
HomeScreenTodoType_TEAM_SHOWCASE HomeScreenTodoType = 10
HomeScreenTodoType_AVATAR_TEAM HomeScreenTodoType = 12
HomeScreenTodoType_ADD_PHONE_NUMBER HomeScreenTodoType = 18
HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER HomeScreenTodoType = 19
HomeScreenTodoType_VERIFY_ALL_EMAIL HomeScreenTodoType = 20
HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY HomeScreenTodoType = 21
HomeScreenTodoType_ADD_EMAIL HomeScreenTodoType = 22
HomeScreenTodoType_AVATAR_USER HomeScreenTodoType = 23
HomeScreenTodoType_CHAT HomeScreenTodoType = 24
HomeScreenTodoType_ANNONCEMENT_PLACEHOLDER HomeScreenTodoType = 10000
)
func (o HomeScreenTodoType) DeepCopy() HomeScreenTodoType { return o }
var HomeScreenTodoTypeMap = map[string]HomeScreenTodoType{
"NONE": 0,
"BIO": 1,
"PROOF": 2,
"DEVICE": 3,
"FOLLOW": 4,
"PAPERKEY": 6,
"TEAM": 7,
"FOLDER": 8,
"GIT_REPO": 9,
"TEAM_SHOWCASE": 10,
"AVATAR_TEAM": 12,
"ADD_PHONE_NUMBER": 18,
"VERIFY_ALL_PHONE_NUMBER": 19,
"VERIFY_ALL_EMAIL": 20,
"LEGACY_EMAIL_VISIBILITY": 21,
"ADD_EMAIL": 22,
"AVATAR_USER": 23,
"CHAT": 24,
"ANNONCEMENT_PLACEHOLDER": 10000,
}
var HomeScreenTodoTypeRevMap = map[HomeScreenTodoType]string{
0: "NONE",
1: "BIO",
2: "PROOF",
3: "DEVICE",
4: "FOLLOW",
6: "PAPERKEY",
7: "TEAM",
8: "FOLDER",
9: "GIT_REPO",
10: "TEAM_SHOWCASE",
12: "AVATAR_TEAM",
18: "ADD_PHONE_NUMBER",
19: "VERIFY_ALL_PHONE_NUMBER",
20: "VERIFY_ALL_EMAIL",
21: "LEGACY_EMAIL_VISIBILITY",
22: "ADD_EMAIL",
23: "AVATAR_USER",
24: "CHAT",
10000: "ANNONCEMENT_PLACEHOLDER",
}
func (e HomeScreenTodoType) String() string {
if v, ok := HomeScreenTodoTypeRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
// Most of TODO items do not carry additional data, but some do. e.g. TODO
// item to tell user to verify their email address will carry that email
// address.
//
// All new TODO data bundle types should be records rather than single fields
// to support adding new data to existing TODOs. If a legacy TODO (such as
// VERIFY_ALL_EMAIL) uses a single field, the "TodoExt" field should be used to
// introduce more data to the payload.
type HomeScreenTodo struct {
T__ HomeScreenTodoType `codec:"t" json:"t"`
VerifyAllPhoneNumber__ *PhoneNumber `codec:"verifyAllPhoneNumber,omitempty" json:"verifyAllPhoneNumber,omitempty"`
VerifyAllEmail__ *EmailAddress `codec:"verifyAllEmail,omitempty" json:"verifyAllEmail,omitempty"`
LegacyEmailVisibility__ *EmailAddress `codec:"legacyEmailVisibility,omitempty" json:"legacyEmailVisibility,omitempty"`
}
func (o *HomeScreenTodo) T() (ret HomeScreenTodoType, err error) {
switch o.T__ {
case HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER:
if o.VerifyAllPhoneNumber__ == nil {
err = errors.New("unexpected nil value for VerifyAllPhoneNumber__")
return ret, err
}
case HomeScreenTodoType_VERIFY_ALL_EMAIL:
if o.VerifyAllEmail__ == nil {
err = errors.New("unexpected nil value for VerifyAllEmail__")
return ret, err
}
case HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY:
if o.LegacyEmailVisibility__ == nil {
err = errors.New("unexpected nil value for LegacyEmailVisibility__")
return ret, err
}
}
return o.T__, nil
}
func (o HomeScreenTodo) VerifyAllPhoneNumber() (res PhoneNumber) {
if o.T__ != HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER {
panic("wrong case accessed")
}
if o.VerifyAllPhoneNumber__ == nil {
return
}
return *o.VerifyAllPhoneNumber__
}
func (o HomeScreenTodo) VerifyAllEmail() (res EmailAddress) {
if o.T__ != HomeScreenTodoType_VERIFY_ALL_EMAIL {
panic("wrong case accessed")
}
if o.VerifyAllEmail__ == nil {
return
}
return *o.VerifyAllEmail__
}
func (o HomeScreenTodo) LegacyEmailVisibility() (res EmailAddress) {
if o.T__ != HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY {
panic("wrong case accessed")
}
if o.LegacyEmailVisibility__ == nil {
return
}
return *o.LegacyEmailVisibility__
}
func NewHomeScreenTodoWithVerifyAllPhoneNumber(v PhoneNumber) HomeScreenTodo {
return HomeScreenTodo{
T__: HomeScreenTodoType_VERIFY_ALL_PHONE_NUMBER,
VerifyAllPhoneNumber__: &v,
}
}
func NewHomeScreenTodoWithVerifyAllEmail(v EmailAddress) HomeScreenTodo {
return HomeScreenTodo{
T__: HomeScreenTodoType_VERIFY_ALL_EMAIL,
VerifyAllEmail__: &v,
}
}
func NewHomeScreenTodoWithLegacyEmailVisibility(v EmailAddress) HomeScreenTodo {
return HomeScreenTodo{
T__: HomeScreenTodoType_LEGACY_EMAIL_VISIBILITY,
LegacyEmailVisibility__: &v,
}
}
func NewHomeScreenTodoDefault(t HomeScreenTodoType) HomeScreenTodo {
return HomeScreenTodo{
T__: t,
}
}
func (o HomeScreenTodo) DeepCopy() HomeScreenTodo {
return HomeScreenTodo{
T__: o.T__.DeepCopy(),
VerifyAllPhoneNumber__: (func(x *PhoneNumber) *PhoneNumber {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.VerifyAllPhoneNumber__),
VerifyAllEmail__: (func(x *EmailAddress) *EmailAddress {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.VerifyAllEmail__),
LegacyEmailVisibility__: (func(x *EmailAddress) *EmailAddress {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.LegacyEmailVisibility__),
}
}
type HomeScreenTodoExt struct {
T__ HomeScreenTodoType `codec:"t" json:"t"`
VerifyAllEmail__ *VerifyAllEmailTodoExt `codec:"verifyAllEmail,omitempty" json:"verifyAllEmail,omitempty"`
}
func (o *HomeScreenTodoExt) T() (ret HomeScreenTodoType, err error) {
switch o.T__ {
case HomeScreenTodoType_VERIFY_ALL_EMAIL:
if o.VerifyAllEmail__ == nil {
err = errors.New("unexpected nil value for VerifyAllEmail__")
return ret, err
}
}
return o.T__, nil
}
func (o HomeScreenTodoExt) VerifyAllEmail() (res VerifyAllEmailTodoExt) {
if o.T__ != HomeScreenTodoType_VERIFY_ALL_EMAIL {
panic("wrong case accessed")
}
if o.VerifyAllEmail__ == nil {
return
}
return *o.VerifyAllEmail__
}
func NewHomeScreenTodoExtWithVerifyAllEmail(v VerifyAllEmailTodoExt) HomeScreenTodoExt {
return HomeScreenTodoExt{
T__: HomeScreenTodoType_VERIFY_ALL_EMAIL,
VerifyAllEmail__: &v,
}
}
func NewHomeScreenTodoExtDefault(t HomeScreenTodoType) HomeScreenTodoExt {
return HomeScreenTodoExt{
T__: t,
}
}
func (o HomeScreenTodoExt) DeepCopy() HomeScreenTodoExt {
return HomeScreenTodoExt{
T__: o.T__.DeepCopy(),
VerifyAllEmail__: (func(x *VerifyAllEmailTodoExt) *VerifyAllEmailTodoExt {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.VerifyAllEmail__),
}
}
type VerifyAllEmailTodoExt struct {
LastVerifyEmailDate UnixTime `codec:"lastVerifyEmailDate" json:"lastVerifyEmailDate"`
}
func (o VerifyAllEmailTodoExt) DeepCopy() VerifyAllEmailTodoExt {
return VerifyAllEmailTodoExt{
LastVerifyEmailDate: o.LastVerifyEmailDate.DeepCopy(),
}
}
type HomeScreenPeopleNotificationType int
const (
HomeScreenPeopleNotificationType_FOLLOWED HomeScreenPeopleNotificationType = 1
HomeScreenPeopleNotificationType_FOLLOWED_MULTI HomeScreenPeopleNotificationType = 2
HomeScreenPeopleNotificationType_CONTACT HomeScreenPeopleNotificationType = 3
HomeScreenPeopleNotificationType_CONTACT_MULTI HomeScreenPeopleNotificationType = 4
)
func (o HomeScreenPeopleNotificationType) DeepCopy() HomeScreenPeopleNotificationType { return o }
var HomeScreenPeopleNotificationTypeMap = map[string]HomeScreenPeopleNotificationType{
"FOLLOWED": 1,
"FOLLOWED_MULTI": 2,
"CONTACT": 3,
"CONTACT_MULTI": 4,
}
var HomeScreenPeopleNotificationTypeRevMap = map[HomeScreenPeopleNotificationType]string{
1: "FOLLOWED",
2: "FOLLOWED_MULTI",
3: "CONTACT",
4: "CONTACT_MULTI",
}
func (e HomeScreenPeopleNotificationType) String() string {
if v, ok := HomeScreenPeopleNotificationTypeRevMap[e]; ok {
return v
}
return fmt.Sprintf("%v", int(e))
}
type HomeScreenPeopleNotificationFollowed struct {
FollowTime Time `codec:"followTime" json:"followTime"`
FollowedBack bool `codec:"followedBack" json:"followedBack"`
User UserSummary `codec:"user" json:"user"`
}
func (o HomeScreenPeopleNotificationFollowed) DeepCopy() HomeScreenPeopleNotificationFollowed {
return HomeScreenPeopleNotificationFollowed{
FollowTime: o.FollowTime.DeepCopy(),
FollowedBack: o.FollowedBack,
User: o.User.DeepCopy(),
}
}
type HomeScreenPeopleNotificationFollowedMulti struct {
Followers []HomeScreenPeopleNotificationFollowed `codec:"followers" json:"followers"`
NumOthers int `codec:"numOthers" json:"numOthers"`
}
func (o HomeScreenPeopleNotificationFollowedMulti) DeepCopy() HomeScreenPeopleNotificationFollowedMulti {
return HomeScreenPeopleNotificationFollowedMulti{
Followers: (func(x []HomeScreenPeopleNotificationFollowed) []HomeScreenPeopleNotificationFollowed {
if x == nil {
return nil
}
ret := make([]HomeScreenPeopleNotificationFollowed, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.Followers),
NumOthers: o.NumOthers,
}
}
type HomeScreenPeopleNotificationContact struct {
ResolveTime Time `codec:"resolveTime" json:"resolveTime"`
Username string `codec:"username" json:"username"`
Description string `codec:"description" json:"description"`
ResolvedContactBlob string `codec:"resolvedContactBlob" json:"resolvedContactBlob"`
}
func (o HomeScreenPeopleNotificationContact) DeepCopy() HomeScreenPeopleNotificationContact {
return HomeScreenPeopleNotificationContact{
ResolveTime: o.ResolveTime.DeepCopy(),
Username: o.Username,
Description: o.Description,
ResolvedContactBlob: o.ResolvedContactBlob,
}
}
type HomeScreenPeopleNotificationContactMulti struct {
Contacts []HomeScreenPeopleNotificationContact `codec:"contacts" json:"contacts"`
NumOthers int `codec:"numOthers" json:"numOthers"`
}
func (o HomeScreenPeopleNotificationContactMulti) DeepCopy() HomeScreenPeopleNotificationContactMulti {
return HomeScreenPeopleNotificationContactMulti{
Contacts: (func(x []HomeScreenPeopleNotificationContact) []HomeScreenPeopleNotificationContact {
if x == nil {
return nil
}
ret := make([]HomeScreenPeopleNotificationContact, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.Contacts),
NumOthers: o.NumOthers,
}
}
type HomeScreenPeopleNotification struct {
T__ HomeScreenPeopleNotificationType `codec:"t" json:"t"`
Followed__ *HomeScreenPeopleNotificationFollowed `codec:"followed,omitempty" json:"followed,omitempty"`
FollowedMulti__ *HomeScreenPeopleNotificationFollowedMulti `codec:"followedMulti,omitempty" json:"followedMulti,omitempty"`
Contact__ *HomeScreenPeopleNotificationContact `codec:"contact,omitempty" json:"contact,omitempty"`
ContactMulti__ *HomeScreenPeopleNotificationContactMulti `codec:"contactMulti,omitempty" json:"contactMulti,omitempty"`
}
func (o *HomeScreenPeopleNotification) T() (ret HomeScreenPeopleNotificationType, err error) {
switch o.T__ {
case HomeScreenPeopleNotificationType_FOLLOWED:
if o.Followed__ == nil {
err = errors.New("unexpected nil value for Followed__")
return ret, err
}
case HomeScreenPeopleNotificationType_FOLLOWED_MULTI:
if o.FollowedMulti__ == nil {
err = errors.New("unexpected nil value for FollowedMulti__")
return ret, err
}
case HomeScreenPeopleNotificationType_CONTACT:
if o.Contact__ == nil {
err = errors.New("unexpected nil value for Contact__")
return ret, err
}
case HomeScreenPeopleNotificationType_CONTACT_MULTI:
if o.ContactMulti__ == nil {
err = errors.New("unexpected nil value for ContactMulti__")
return ret, err
}
}
return o.T__, nil
}
func (o HomeScreenPeopleNotification) Followed() (res HomeScreenPeopleNotificationFollowed) {
if o.T__ != HomeScreenPeopleNotificationType_FOLLOWED {
panic("wrong case accessed")
}
if o.Followed__ == nil {
return
}
return *o.Followed__
}
func (o HomeScreenPeopleNotification) FollowedMulti() (res HomeScreenPeopleNotificationFollowedMulti) {
if o.T__ != HomeScreenPeopleNotificationType_FOLLOWED_MULTI {
panic("wrong case accessed")
}
if o.FollowedMulti__ == nil {
return
}
return *o.FollowedMulti__
}
func (o HomeScreenPeopleNotification) Contact() (res HomeScreenPeopleNotificationContact) {
if o.T__ != HomeScreenPeopleNotificationType_CONTACT {
panic("wrong case accessed")
}
if o.Contact__ == nil {
return
}
return *o.Contact__
}
func (o HomeScreenPeopleNotification) ContactMulti() (res HomeScreenPeopleNotificationContactMulti) {
if o.T__ != HomeScreenPeopleNotificationType_CONTACT_MULTI {
panic("wrong case accessed")
}
if o.ContactMulti__ == nil {
return
}
return *o.ContactMulti__
}
func NewHomeScreenPeopleNotificationWithFollowed(v HomeScreenPeopleNotificationFollowed) HomeScreenPeopleNotification {
return HomeScreenPeopleNotification{
T__: HomeScreenPeopleNotificationType_FOLLOWED,
Followed__: &v,
}
}
func NewHomeScreenPeopleNotificationWithFollowedMulti(v HomeScreenPeopleNotificationFollowedMulti) HomeScreenPeopleNotification {
return HomeScreenPeopleNotification{
T__: HomeScreenPeopleNotificationType_FOLLOWED_MULTI,
FollowedMulti__: &v,
}
}
func NewHomeScreenPeopleNotificationWithContact(v HomeScreenPeopleNotificationContact) HomeScreenPeopleNotification {
return HomeScreenPeopleNotification{
T__: HomeScreenPeopleNotificationType_CONTACT,
Contact__: &v,
}
}
func NewHomeScreenPeopleNotificationWithContactMulti(v HomeScreenPeopleNotificationContactMulti) HomeScreenPeopleNotification {
return HomeScreenPeopleNotification{
T__: HomeScreenPeopleNotificationType_CONTACT_MULTI,
ContactMulti__: &v,
}
}
func (o HomeScreenPeopleNotification) DeepCopy() HomeScreenPeopleNotification {
return HomeScreenPeopleNotification{
T__: o.T__.DeepCopy(),
Followed__: (func(x *HomeScreenPeopleNotificationFollowed) *HomeScreenPeopleNotificationFollowed {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Followed__),
FollowedMulti__: (func(x *HomeScreenPeopleNotificationFollowedMulti) *HomeScreenPeopleNotificationFollowedMulti {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.FollowedMulti__),
Contact__: (func(x *HomeScreenPeopleNotificationContact) *HomeScreenPeopleNotificationContact {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Contact__),
ContactMulti__: (func(x *HomeScreenPeopleNotificationContactMulti) *HomeScreenPeopleNotificationContactMulti {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.ContactMulti__),
}
}
type HomeScreenItem struct {
Badged bool `codec:"badged" json:"badged"`
Data HomeScreenItemData `codec:"data" json:"data"`
DataExt HomeScreenItemDataExt `codec:"dataExt" json:"dataExt"`
}
func (o HomeScreenItem) DeepCopy() HomeScreenItem {
return HomeScreenItem{
Badged: o.Badged,
Data: o.Data.DeepCopy(),
DataExt: o.DataExt.DeepCopy(),
}
}
type Pics struct {
Square40 string `codec:"square40" json:"square_40"`
Square200 string `codec:"square200" json:"square_200"`
Square360 string `codec:"square360" json:"square_360"`
}
func (o Pics) DeepCopy() Pics {
return Pics{
Square40: o.Square40,
Square200: o.Square200,
Square360: o.Square360,
}
}
type HomeUserSummary struct {
Uid UID `codec:"uid" json:"uid"`
Username string `codec:"username" json:"username"`
Bio string `codec:"bio" json:"bio"`
FullName string `codec:"fullName" json:"full_name"`
Pics *Pics `codec:"pics,omitempty" json:"pics,omitempty"`
}
func (o HomeUserSummary) DeepCopy() HomeUserSummary {
return HomeUserSummary{
Uid: o.Uid.DeepCopy(),
Username: o.Username,
Bio: o.Bio,
FullName: o.FullName,
Pics: (func(x *Pics) *Pics {
if x == nil {
return nil
}
tmp := (*x).DeepCopy()
return &tmp
})(o.Pics),
}
}
type HomeScreen struct {
LastViewed Time `codec:"lastViewed" json:"lastViewed"`
Version int `codec:"version" json:"version"`
Visits int `codec:"visits" json:"visits"`
Items []HomeScreenItem `codec:"items" json:"items"`
FollowSuggestions []HomeUserSummary `codec:"followSuggestions" json:"followSuggestions"`
AnnouncementsVersion int `codec:"announcementsVersion" json:"announcementsVersion"`
}
func (o HomeScreen) DeepCopy() HomeScreen {
return HomeScreen{
LastViewed: o.LastViewed.DeepCopy(),
Version: o.Version,
Visits: o.Visits,
Items: (func(x []HomeScreenItem) []HomeScreenItem {
if x == nil {
return nil
}
ret := make([]HomeScreenItem, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.Items),
FollowSuggestions: (func(x []HomeUserSummary) []HomeUserSummary {
if x == nil {
return nil
}
ret := make([]HomeUserSummary, len(x))
for i, v := range x {
vCopy := v.DeepCopy()
ret[i] = vCopy
}
return ret
})(o.FollowSuggestions),
AnnouncementsVersion: o.AnnouncementsVersion,
}
}