objc2_web_kit/generated/
WKHTTPCookieStore.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10/// [Apple's documentation](https://developer.apple.com/documentation/webkit/wkcookiepolicy?language=objc)
11// NS_ENUM
12#[repr(transparent)]
13#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct WKCookiePolicy(pub NSInteger);
15impl WKCookiePolicy {
16    #[doc(alias = "WKCookiePolicyAllow")]
17    pub const Allow: Self = Self(0);
18    #[doc(alias = "WKCookiePolicyDisallow")]
19    pub const Disallow: Self = Self(1);
20}
21
22unsafe impl Encode for WKCookiePolicy {
23    const ENCODING: Encoding = NSInteger::ENCODING;
24}
25
26unsafe impl RefEncode for WKCookiePolicy {
27    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
28}
29
30extern_protocol!(
31    /// [Apple's documentation](https://developer.apple.com/documentation/webkit/wkhttpcookiestoreobserver?language=objc)
32    pub unsafe trait WKHTTPCookieStoreObserver: NSObjectProtocol + MainThreadOnly {
33        #[optional]
34        #[unsafe(method(cookiesDidChangeInCookieStore:))]
35        #[unsafe(method_family = none)]
36        unsafe fn cookiesDidChangeInCookieStore(&self, cookie_store: &WKHTTPCookieStore);
37    }
38);
39
40extern_class!(
41    /// A WKHTTPCookieStore object allows managing the HTTP cookies associated with a particular WKWebsiteDataStore.
42    ///
43    /// See also [Apple's documentation](https://developer.apple.com/documentation/webkit/wkhttpcookiestore?language=objc)
44    #[unsafe(super(NSObject))]
45    #[thread_kind = MainThreadOnly]
46    #[derive(Debug, PartialEq, Eq, Hash)]
47    pub struct WKHTTPCookieStore;
48);
49
50extern_conformance!(
51    unsafe impl NSObjectProtocol for WKHTTPCookieStore {}
52);
53
54impl WKHTTPCookieStore {
55    extern_methods!(
56        #[unsafe(method(init))]
57        #[unsafe(method_family = init)]
58        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
59
60        #[cfg(feature = "block2")]
61        /// Fetches all stored cookies.
62        ///
63        /// Parameter `completionHandler`: A block to invoke with the fetched cookies.
64        #[unsafe(method(getAllCookies:))]
65        #[unsafe(method_family = none)]
66        pub unsafe fn getAllCookies(
67            &self,
68            completion_handler: &block2::DynBlock<dyn Fn(NonNull<NSArray<NSHTTPCookie>>)>,
69        );
70
71        #[cfg(feature = "block2")]
72        /// Set a cookie.
73        ///
74        /// Parameter `cookie`: The cookie to set.
75        ///
76        /// Parameter `completionHandler`: A block to invoke once the cookie has been stored.
77        #[unsafe(method(setCookie:completionHandler:))]
78        #[unsafe(method_family = none)]
79        pub unsafe fn setCookie_completionHandler(
80            &self,
81            cookie: &NSHTTPCookie,
82            completion_handler: Option<&block2::DynBlock<dyn Fn()>>,
83        );
84
85        #[cfg(feature = "block2")]
86        /// Set multiple cookies.
87        ///
88        /// Parameter `cookies`: An array of cookies to set.
89        ///
90        /// Parameter `completionHandler`: A block to invoke once the cookies have been stored.
91        #[unsafe(method(setCookies:completionHandler:))]
92        #[unsafe(method_family = none)]
93        pub unsafe fn setCookies_completionHandler(
94            &self,
95            cookies: &NSArray<NSHTTPCookie>,
96            completion_handler: Option<&block2::DynBlock<dyn Fn()>>,
97        );
98
99        #[cfg(feature = "block2")]
100        /// Delete the specified cookie.
101        ///
102        /// Parameter `completionHandler`: A block to invoke once the cookie has been deleted.
103        #[unsafe(method(deleteCookie:completionHandler:))]
104        #[unsafe(method_family = none)]
105        pub unsafe fn deleteCookie_completionHandler(
106            &self,
107            cookie: &NSHTTPCookie,
108            completion_handler: Option<&block2::DynBlock<dyn Fn()>>,
109        );
110
111        /// Adds a WKHTTPCookieStoreObserver object with the cookie store.
112        ///
113        /// Parameter `observer`: The observer object to add.
114        ///
115        /// The observer is not retained by the receiver. It is your responsibility
116        /// to unregister the observer before it becomes invalid.
117        #[unsafe(method(addObserver:))]
118        #[unsafe(method_family = none)]
119        pub unsafe fn addObserver(&self, observer: &ProtocolObject<dyn WKHTTPCookieStoreObserver>);
120
121        /// Removes a WKHTTPCookieStoreObserver object from the cookie store.
122        ///
123        /// Parameter `observer`: The observer to remove.
124        #[unsafe(method(removeObserver:))]
125        #[unsafe(method_family = none)]
126        pub unsafe fn removeObserver(
127            &self,
128            observer: &ProtocolObject<dyn WKHTTPCookieStoreObserver>,
129        );
130
131        #[cfg(feature = "block2")]
132        /// Set whether cookies are allowed.
133        ///
134        /// Parameter `policy`: A value indicating whether cookies are allowed. The default value is WKCookiePolicyAllow.
135        ///
136        /// Parameter `completionHandler`: A block to invoke once the cookie policy has been set.
137        #[unsafe(method(setCookiePolicy:completionHandler:))]
138        #[unsafe(method_family = none)]
139        pub unsafe fn setCookiePolicy_completionHandler(
140            &self,
141            policy: WKCookiePolicy,
142            completion_handler: Option<&block2::DynBlock<dyn Fn()>>,
143        );
144
145        #[cfg(feature = "block2")]
146        /// Get whether cookies are allowed.
147        ///
148        /// Parameter `completionHandler`: A block to invoke with the value of whether cookies are allowed.
149        #[unsafe(method(getCookiePolicy:))]
150        #[unsafe(method_family = none)]
151        pub unsafe fn getCookiePolicy(
152            &self,
153            completion_handler: &block2::DynBlock<dyn Fn(WKCookiePolicy)>,
154        );
155    );
156}
157
158/// Methods declared on superclass `NSObject`.
159impl WKHTTPCookieStore {
160    extern_methods!(
161        #[unsafe(method(new))]
162        #[unsafe(method_family = new)]
163        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
164    );
165}