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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;

use crate::*;

// NS_ENUM
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSHTTPCookieAcceptPolicy(pub NSUInteger);
impl NSHTTPCookieAcceptPolicy {
    #[doc(alias = "NSHTTPCookieAcceptPolicyAlways")]
    pub const Always: Self = Self(0);
    #[doc(alias = "NSHTTPCookieAcceptPolicyNever")]
    pub const Never: Self = Self(1);
    #[doc(alias = "NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain")]
    pub const OnlyFromMainDocumentDomain: Self = Self(2);
}

unsafe impl Encode for NSHTTPCookieAcceptPolicy {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSHTTPCookieAcceptPolicy {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}

extern_class!(
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct NSHTTPCookieStorage;

    unsafe impl ClassType for NSHTTPCookieStorage {
        type Super = NSObject;
        type Mutability = InteriorMutable;
    }
);

unsafe impl Send for NSHTTPCookieStorage {}

unsafe impl Sync for NSHTTPCookieStorage {}

unsafe impl NSObjectProtocol for NSHTTPCookieStorage {}

extern_methods!(
    unsafe impl NSHTTPCookieStorage {
        #[method_id(@__retain_semantics Other sharedHTTPCookieStorage)]
        pub unsafe fn sharedHTTPCookieStorage() -> Retained<NSHTTPCookieStorage>;

        #[cfg(feature = "NSString")]
        #[method_id(@__retain_semantics Other sharedCookieStorageForGroupContainerIdentifier:)]
        pub unsafe fn sharedCookieStorageForGroupContainerIdentifier(
            identifier: &NSString,
        ) -> Retained<NSHTTPCookieStorage>;

        #[cfg(all(feature = "NSArray", feature = "NSHTTPCookie"))]
        #[method_id(@__retain_semantics Other cookies)]
        pub unsafe fn cookies(&self) -> Option<Retained<NSArray<NSHTTPCookie>>>;

        #[cfg(feature = "NSHTTPCookie")]
        #[method(setCookie:)]
        pub unsafe fn setCookie(&self, cookie: &NSHTTPCookie);

        #[cfg(feature = "NSHTTPCookie")]
        #[method(deleteCookie:)]
        pub unsafe fn deleteCookie(&self, cookie: &NSHTTPCookie);

        #[cfg(feature = "NSDate")]
        #[method(removeCookiesSinceDate:)]
        pub unsafe fn removeCookiesSinceDate(&self, date: &NSDate);

        #[cfg(all(feature = "NSArray", feature = "NSHTTPCookie", feature = "NSURL"))]
        #[method_id(@__retain_semantics Other cookiesForURL:)]
        pub unsafe fn cookiesForURL(&self, url: &NSURL) -> Option<Retained<NSArray<NSHTTPCookie>>>;

        #[cfg(all(feature = "NSArray", feature = "NSHTTPCookie", feature = "NSURL"))]
        #[method(setCookies:forURL:mainDocumentURL:)]
        pub unsafe fn setCookies_forURL_mainDocumentURL(
            &self,
            cookies: &NSArray<NSHTTPCookie>,
            url: Option<&NSURL>,
            main_document_url: Option<&NSURL>,
        );

        #[method(cookieAcceptPolicy)]
        pub unsafe fn cookieAcceptPolicy(&self) -> NSHTTPCookieAcceptPolicy;

        #[method(setCookieAcceptPolicy:)]
        pub unsafe fn setCookieAcceptPolicy(&self, cookie_accept_policy: NSHTTPCookieAcceptPolicy);

        #[cfg(all(
            feature = "NSArray",
            feature = "NSHTTPCookie",
            feature = "NSSortDescriptor"
        ))]
        #[method_id(@__retain_semantics Other sortedCookiesUsingDescriptors:)]
        pub unsafe fn sortedCookiesUsingDescriptors(
            &self,
            sort_order: &NSArray<NSSortDescriptor>,
        ) -> Retained<NSArray<NSHTTPCookie>>;
    }
);

extern_methods!(
    /// Methods declared on superclass `NSObject`
    unsafe impl NSHTTPCookieStorage {
        #[method_id(@__retain_semantics Init init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[method_id(@__retain_semantics New new)]
        pub unsafe fn new() -> Retained<Self>;
    }
);

extern_methods!(
    /// NSURLSessionTaskAdditions
    unsafe impl NSHTTPCookieStorage {
        #[cfg(all(
            feature = "NSArray",
            feature = "NSHTTPCookie",
            feature = "NSURLSession"
        ))]
        #[method(storeCookies:forTask:)]
        pub unsafe fn storeCookies_forTask(
            &self,
            cookies: &NSArray<NSHTTPCookie>,
            task: &NSURLSessionTask,
        );

        #[cfg(all(
            feature = "NSArray",
            feature = "NSHTTPCookie",
            feature = "NSURLSession",
            feature = "block2"
        ))]
        #[method(getCookiesForTask:completionHandler:)]
        pub unsafe fn getCookiesForTask_completionHandler(
            &self,
            task: &NSURLSessionTask,
            completion_handler: &block2::Block<dyn Fn(*mut NSArray<NSHTTPCookie>)>,
        );
    }
);

extern "C" {
    #[cfg(all(feature = "NSNotification", feature = "NSString"))]
    pub static NSHTTPCookieManagerAcceptPolicyChangedNotification: &'static NSNotificationName;
}

extern "C" {
    #[cfg(all(feature = "NSNotification", feature = "NSString"))]
    pub static NSHTTPCookieManagerCookiesChangedNotification: &'static NSNotificationName;
}