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
50unsafe impl NSObjectProtocol for WKHTTPCookieStore {}
51
52impl WKHTTPCookieStore {
53    extern_methods!(
54        #[unsafe(method(init))]
55        #[unsafe(method_family = init)]
56        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
57
58        #[cfg(feature = "block2")]
59        /// Fetches all stored cookies.
60        ///
61        /// Parameter `completionHandler`: A block to invoke with the fetched cookies.
62        #[unsafe(method(getAllCookies:))]
63        #[unsafe(method_family = none)]
64        pub unsafe fn getAllCookies(
65            &self,
66            completion_handler: &block2::Block<dyn Fn(NonNull<NSArray<NSHTTPCookie>>)>,
67        );
68
69        #[cfg(feature = "block2")]
70        /// Set a cookie.
71        ///
72        /// Parameter `cookie`: The cookie to set.
73        ///
74        /// Parameter `completionHandler`: A block to invoke once the cookie has been stored.
75        #[unsafe(method(setCookie:completionHandler:))]
76        #[unsafe(method_family = none)]
77        pub unsafe fn setCookie_completionHandler(
78            &self,
79            cookie: &NSHTTPCookie,
80            completion_handler: Option<&block2::Block<dyn Fn()>>,
81        );
82
83        #[cfg(feature = "block2")]
84        /// Delete the specified cookie.
85        ///
86        /// Parameter `completionHandler`: A block to invoke once the cookie has been deleted.
87        #[unsafe(method(deleteCookie:completionHandler:))]
88        #[unsafe(method_family = none)]
89        pub unsafe fn deleteCookie_completionHandler(
90            &self,
91            cookie: &NSHTTPCookie,
92            completion_handler: Option<&block2::Block<dyn Fn()>>,
93        );
94
95        /// Adds a WKHTTPCookieStoreObserver object with the cookie store.
96        ///
97        /// Parameter `observer`: The observer object to add.
98        ///
99        /// The observer is not retained by the receiver. It is your responsibility
100        /// to unregister the observer before it becomes invalid.
101        #[unsafe(method(addObserver:))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn addObserver(&self, observer: &ProtocolObject<dyn WKHTTPCookieStoreObserver>);
104
105        /// Removes a WKHTTPCookieStoreObserver object from the cookie store.
106        ///
107        /// Parameter `observer`: The observer to remove.
108        #[unsafe(method(removeObserver:))]
109        #[unsafe(method_family = none)]
110        pub unsafe fn removeObserver(
111            &self,
112            observer: &ProtocolObject<dyn WKHTTPCookieStoreObserver>,
113        );
114
115        #[cfg(feature = "block2")]
116        /// Set whether cookies are allowed.
117        ///
118        /// Parameter `policy`: A value indicating whether cookies are allowed. The default value is WKCookiePolicyAllow.
119        ///
120        /// Parameter `completionHandler`: A block to invoke once the cookie policy has been set.
121        #[unsafe(method(setCookiePolicy:completionHandler:))]
122        #[unsafe(method_family = none)]
123        pub unsafe fn setCookiePolicy_completionHandler(
124            &self,
125            policy: WKCookiePolicy,
126            completion_handler: Option<&block2::Block<dyn Fn()>>,
127        );
128
129        #[cfg(feature = "block2")]
130        /// Get whether cookies are allowed.
131        ///
132        /// Parameter `completionHandler`: A block to invoke with the value of whether cookies are allowed.
133        #[unsafe(method(getCookiePolicy:))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn getCookiePolicy(
136            &self,
137            completion_handler: &block2::Block<dyn Fn(WKCookiePolicy)>,
138        );
139    );
140}
141
142/// Methods declared on superclass `NSObject`.
143impl WKHTTPCookieStore {
144    extern_methods!(
145        #[unsafe(method(new))]
146        #[unsafe(method_family = new)]
147        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
148    );
149}