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        /// Delete the specified cookie.
87        ///
88        /// Parameter `completionHandler`: A block to invoke once the cookie has been deleted.
89        #[unsafe(method(deleteCookie:completionHandler:))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn deleteCookie_completionHandler(
92            &self,
93            cookie: &NSHTTPCookie,
94            completion_handler: Option<&block2::DynBlock<dyn Fn()>>,
95        );
96
97        /// Adds a WKHTTPCookieStoreObserver object with the cookie store.
98        ///
99        /// Parameter `observer`: The observer object to add.
100        ///
101        /// The observer is not retained by the receiver. It is your responsibility
102        /// to unregister the observer before it becomes invalid.
103        #[unsafe(method(addObserver:))]
104        #[unsafe(method_family = none)]
105        pub unsafe fn addObserver(&self, observer: &ProtocolObject<dyn WKHTTPCookieStoreObserver>);
106
107        /// Removes a WKHTTPCookieStoreObserver object from the cookie store.
108        ///
109        /// Parameter `observer`: The observer to remove.
110        #[unsafe(method(removeObserver:))]
111        #[unsafe(method_family = none)]
112        pub unsafe fn removeObserver(
113            &self,
114            observer: &ProtocolObject<dyn WKHTTPCookieStoreObserver>,
115        );
116
117        #[cfg(feature = "block2")]
118        /// Set whether cookies are allowed.
119        ///
120        /// Parameter `policy`: A value indicating whether cookies are allowed. The default value is WKCookiePolicyAllow.
121        ///
122        /// Parameter `completionHandler`: A block to invoke once the cookie policy has been set.
123        #[unsafe(method(setCookiePolicy:completionHandler:))]
124        #[unsafe(method_family = none)]
125        pub unsafe fn setCookiePolicy_completionHandler(
126            &self,
127            policy: WKCookiePolicy,
128            completion_handler: Option<&block2::DynBlock<dyn Fn()>>,
129        );
130
131        #[cfg(feature = "block2")]
132        /// Get whether cookies are allowed.
133        ///
134        /// Parameter `completionHandler`: A block to invoke with the value of whether cookies are allowed.
135        #[unsafe(method(getCookiePolicy:))]
136        #[unsafe(method_family = none)]
137        pub unsafe fn getCookiePolicy(
138            &self,
139            completion_handler: &block2::DynBlock<dyn Fn(WKCookiePolicy)>,
140        );
141    );
142}
143
144/// Methods declared on superclass `NSObject`.
145impl WKHTTPCookieStore {
146    extern_methods!(
147        #[unsafe(method(new))]
148        #[unsafe(method_family = new)]
149        pub unsafe fn new(mtm: MainThreadMarker) -> Retained<Self>;
150    );
151}