1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#[allow(unused_imports)]
use self::super::root;
pub type Url = [u8; 160usize];
extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends10InitializeEv"]
    pub fn Initialize();
}
extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends14GetProfileListEPNS0_12AsyncContextEPNS0_7ProfileERKNS_7account3UidEPKmi"]
    pub fn GetProfileList(
        context: *mut AsyncContext,
        profiles: *mut Profile,
        userID: *const root::nn::account::Uid,
        accountIDs: *const root::nn::account::NetworkServiceAccountId,
        numAccounts: root::s32,
    ) -> root::Result;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Profile {
    pub _address: u8,
}

extern "C" {
    #[link_name = "\u{1}_ZNK2nn7friends7Profile12GetAccountIdEv"]
    pub fn Profile_GetAccountId(
        this: *const Profile,
    ) -> root::nn::account::NetworkServiceAccountId;
}
extern "C" {
    #[link_name = "\u{1}_ZNK2nn7friends7Profile11GetNicknameEv"]
    pub fn Profile_GetNickname(
        this: *const Profile,
    ) -> *mut root::nn::account::Nickname;
}
extern "C" {
    #[link_name = "\u{1}_ZNK2nn7friends7Profile7IsValidEv"]
    pub fn Profile_IsValid(this: *const Profile) -> bool;
}
extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends7Profile18GetProfileImageUrlEPA160_ci"]
    pub fn Profile_GetProfileImageUrl(
        this: *mut Profile,
        arg1: *mut Url,
        arg2: root::s32,
    ) -> root::Result;
}
extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends7ProfileC1Ev"]
    pub fn Profile_Profile(this: *mut Profile);
}
impl Profile {
    #[inline]
    pub unsafe fn GetAccountId(&self) -> root::nn::account::NetworkServiceAccountId {
        Profile_GetAccountId(self)
    }
    #[inline]
    pub unsafe fn GetNickname(&self) -> *mut root::nn::account::Nickname {
        Profile_GetNickname(self)
    }
    #[inline]
    pub unsafe fn IsValid(&self) -> bool {
        Profile_IsValid(self)
    }
    #[inline]
    pub unsafe fn GetProfileImageUrl(
        &mut self,
        arg1: *mut Url,
        arg2: root::s32,
    ) -> root::Result {
        Profile_GetProfileImageUrl(self, arg1, arg2)
    }
    #[inline]
    pub unsafe fn new() -> Self {
        let mut __bindgen_tmp = ::core::mem::MaybeUninit::uninit();
        Profile_Profile(__bindgen_tmp.as_mut_ptr());
        __bindgen_tmp.assume_init()
    }
}
#[repr(C)]
#[derive(Debug)]
pub struct AsyncContext {
    pub _address: u8,
}

extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends12AsyncContext14GetSystemEventEPNS_2os11SystemEventE"]
    pub fn AsyncContext_GetSystemEvent(
        this: *mut AsyncContext,
        arg1: *mut root::nn::os::SystemEvent,
    ) -> root::Result;
}
extern "C" {
    #[link_name = "\u{1}_ZNK2nn7friends12AsyncContext9GetResultEv"]
    pub fn AsyncContext_GetResult(
        this: *const AsyncContext,
    ) -> root::Result;
}
extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends12AsyncContextC1Ev"]
    pub fn AsyncContext_AsyncContext(this: *mut AsyncContext);
}
extern "C" {
    #[link_name = "\u{1}_ZN2nn7friends12AsyncContextD1Ev"]
    pub fn AsyncContext_AsyncContext_destructor(
        this: *mut AsyncContext,
    );
}
impl AsyncContext {
    #[inline]
    pub unsafe fn GetSystemEvent(
        &mut self,
        arg1: *mut root::nn::os::SystemEvent,
    ) -> root::Result {
        AsyncContext_GetSystemEvent(self, arg1)
    }
    #[inline]
    pub unsafe fn GetResult(&self) -> root::Result {
        AsyncContext_GetResult(self)
    }
    #[inline]
    pub unsafe fn new() -> Self {
        let mut __bindgen_tmp = ::core::mem::MaybeUninit::uninit();
        AsyncContext_AsyncContext(__bindgen_tmp.as_mut_ptr());
        __bindgen_tmp.assume_init()
    }
    #[inline]
    pub unsafe fn destruct(&mut self) {
        AsyncContext_AsyncContext_destructor(self)
    }
}