//! This file has been automatically generated by `objc2`'s `header-translator`. //! DO NOT EDIT use core::ptr::NonNull; use objc2::__framework_prelude::*; use crate::*; /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiepropertykey?language=objc) // NS_TYPED_EXTENSIBLE_ENUM #[cfg(feature = "NSString")] pub type NSHTTPCookiePropertyKey = NSString; /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiestringpolicy?language=objc) // NS_TYPED_ENUM #[cfg(feature = "NSString")] pub type NSHTTPCookieStringPolicy = NSString; extern "C" { /// Key for cookie name /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiename?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieName: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie value /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookievalue?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieValue: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie origin URL /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookieoriginurl?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieOriginURL: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie version /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookieversion?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieVersion: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie domain /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiedomain?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieDomain: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie path /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiepath?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookiePath: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie secure flag /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiesecure?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieSecure: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie expiration date /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookieexpires?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieExpires: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie comment text /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiecomment?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieComment: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie comment URL /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiecommenturl?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieCommentURL: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie discard (session-only) flag /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiediscard?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieDiscard: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie maximum age (an alternate way of specifying the expiration) /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiemaximumage?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieMaximumAge: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie ports /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookieport?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookiePort: &'static NSHTTPCookiePropertyKey; } extern "C" { /// An NSString object indicating that the cookie is set via JavaScript. /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiesetbyjavascript?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieSetByJavaScript: &'static NSHTTPCookiePropertyKey; } extern "C" { /// Key for cookie same site /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiesamesitepolicy?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieSameSitePolicy: &'static NSHTTPCookiePropertyKey; } extern "C" { /// String constant "lax" to be used as a value for the property key NSHTTPCookieSameSite /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiesamesitelax?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieSameSiteLax: &'static NSHTTPCookieStringPolicy; } extern "C" { /// String constant "strict" to be used as a value for the property key NSHTTPCookieSameSite /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookiesamesitestrict?language=objc) #[cfg(feature = "NSString")] pub static NSHTTPCookieSameSiteStrict: &'static NSHTTPCookieStringPolicy; } extern_class!( /// NSHTTPCookie represents an http cookie. /// /// A NSHTTPCookie instance represents a single http cookie. It is /// an immutable object initialized from a dictionary that contains /// the various cookie attributes. It has accessors to get the various /// attributes of a cookie. /// /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nshttpcookie?language=objc) #[unsafe(super(NSObject))] #[derive(Debug, PartialEq, Eq, Hash)] pub struct NSHTTPCookie; ); unsafe impl Send for NSHTTPCookie {} unsafe impl Sync for NSHTTPCookie {} extern_conformance!( unsafe impl NSObjectProtocol for NSHTTPCookie {} ); impl NSHTTPCookie { extern_methods!( #[cfg(all(feature = "NSDictionary", feature = "NSString"))] /// Initialize a NSHTTPCookie object with a dictionary of /// parameters /// /// Parameter `properties`: The dictionary of properties to be used to /// initialize this cookie. /// /// Supported dictionary keys and value types for the /// given dictionary are as follows. /// /// All properties can handle an NSString value, but some can also /// handle other types. /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
/// Property key constant /// /// Type of value /// /// Required /// /// Description ///
/// NSHTTPCookieComment /// /// NSString /// /// NO /// /// Comment for the cookie. Only valid for version 1 cookies and /// later. Default is nil. ///
/// NSHTTPCookieCommentURL /// /// NSURL or NSString /// /// NO /// /// Comment URL for the cookie. Only valid for version 1 cookies /// and later. Default is nil. ///
/// NSHTTPCookieDomain /// /// NSString /// /// Special, a value for either NSHTTPCookieOriginURL or /// NSHTTPCookieDomain must be specified. /// /// Domain for the cookie. Inferred from the value for /// NSHTTPCookieOriginURL if not provided. ///
/// NSHTTPCookieDiscard /// /// NSString /// /// NO /// /// A string stating whether the cookie should be discarded at /// the end of the session. String value must be either "TRUE" or /// "FALSE". Default is "FALSE", unless this is cookie is version /// 1 or greater and a value for NSHTTPCookieMaximumAge is not /// specified, in which case it is assumed "TRUE". ///
/// NSHTTPCookieExpires /// /// NSDate or NSString /// /// NO /// /// Expiration date for the cookie. Used only for version 0 /// cookies. Ignored for version 1 or greater. ///
/// NSHTTPCookieMaximumAge /// /// NSString /// /// NO /// /// A string containing an integer value stating how long in /// seconds the cookie should be kept, at most. Only valid for /// version 1 cookies and later. Default is "0". ///
/// NSHTTPCookieName /// /// NSString /// /// YES /// /// Name of the cookie ///
/// NSHTTPCookieOriginURL /// /// NSURL or NSString /// /// Special, a value for either NSHTTPCookieOriginURL or /// NSHTTPCookieDomain must be specified. /// /// URL that set this cookie. Used as default for other fields /// as noted. ///
/// NSHTTPCookiePath /// /// NSString /// /// NO /// /// Path for the cookie. Inferred from the value for /// NSHTTPCookieOriginURL if not provided. Default is "/". ///
/// NSHTTPCookiePort /// /// NSString /// /// NO /// /// comma-separated integer values specifying the ports for the /// cookie. Only valid for version 1 cookies and later. Default is /// empty string (""). ///
/// NSHTTPCookieSecure /// /// NSString /// /// NO /// /// A string stating whether the cookie should be transmitted /// only over secure channels. String value must be either "TRUE" /// or "FALSE". Default is "FALSE". ///
/// NSHTTPCookieValue /// /// NSString /// /// YES /// /// Value of the cookie ///
/// NSHTTPCookieVersion /// /// NSString /// /// NO /// /// Specifies the version of the cookie. Must be either "0" or /// "1". Default is "0". ///
/// NSHTTPCookieSetByJavaScript /// /// NSNumber /// /// NO /// /// `true`if the cookie is set via JavaScript. /// `false`if the cookie /// is not set via JavaScript ///
///

/// All other keys are ignored. /// /// Returns: An initialized NSHTTPCookie, or nil if the set of /// dictionary keys is invalid, for example because a required key is /// missing, or a recognized key maps to an illegal value. /// /// # Safety /// /// `properties` generic should be of the correct type. #[unsafe(method(initWithProperties:))] #[unsafe(method_family = init)] pub unsafe fn initWithProperties( this: Allocated, properties: &NSDictionary, ) -> Option>; #[cfg(all(feature = "NSDictionary", feature = "NSString"))] /// Allocates and initializes an NSHTTPCookie with the given /// dictionary. /// /// See the NSHTTPCookie /// /// -initWithProperties: /// /// method for more information on the constraints imposed on the /// dictionary, and for descriptions of the supported keys and values. /// /// Parameter `properties`: The dictionary to use to initialize this cookie. /// /// Returns: A newly-created and autoreleased NSHTTPCookie instance, or /// nil if the set of dictionary keys is invalid, for example because /// a required key is missing, or a recognized key maps to an illegal /// value. /// /// # Safety /// /// `properties` generic should be of the correct type. #[unsafe(method(cookieWithProperties:))] #[unsafe(method_family = none)] pub unsafe fn cookieWithProperties( properties: &NSDictionary, ) -> Option>; #[cfg(all(feature = "NSArray", feature = "NSDictionary", feature = "NSString"))] /// Return a dictionary of header fields that can be used to add the /// specified cookies to the request. /// /// Parameter `cookies`: The cookies to turn into request headers. /// /// Returns: An NSDictionary where the keys are header field names, and the values /// are the corresponding header field values. #[unsafe(method(requestHeaderFieldsWithCookies:))] #[unsafe(method_family = none)] pub fn requestHeaderFieldsWithCookies( cookies: &NSArray, ) -> Retained>; #[cfg(all( feature = "NSArray", feature = "NSDictionary", feature = "NSString", feature = "NSURL" ))] /// Return an array of cookies parsed from the specified response header fields and URL. /// /// Parameter `headerFields`: The response header fields to check for cookies. /// /// Parameter `URL`: The URL that the cookies came from - relevant to how the cookies are interpreted. /// /// Returns: An NSArray of NSHTTPCookie objects /// /// This method will ignore irrelevant header fields so /// you can pass a dictionary containing data other than cookie data. #[unsafe(method(cookiesWithResponseHeaderFields:forURL:))] #[unsafe(method_family = none)] pub fn cookiesWithResponseHeaderFields_forURL( header_fields: &NSDictionary, url: &NSURL, ) -> Retained>; #[cfg(all(feature = "NSDictionary", feature = "NSString"))] /// Returns a dictionary representation of the receiver. /// /// This method returns a dictionary representation of the /// NSHTTPCookie which can be saved and passed to /// /// -initWithProperties: /// /// or /// /// +cookieWithProperties: /// /// later to reconstitute an equivalent cookie. ///

/// See the NSHTTPCookie /// /// -initWithProperties: /// /// method for /// more information on the constraints imposed on the dictionary, and /// for descriptions of the supported keys and values. /// /// Returns: The dictionary representation of the receiver. #[unsafe(method(properties))] #[unsafe(method_family = none)] pub fn properties( &self, ) -> Option>>; /// Returns the version of the receiver. /// /// Version 0 maps to "old-style" Netscape cookies. /// Version 1 maps to RFC2965 cookies. There may be future versions. /// /// Returns: the version of the receiver. #[unsafe(method(version))] #[unsafe(method_family = none)] pub fn version(&self) -> NSUInteger; #[cfg(feature = "NSString")] /// Returns the name of the receiver. /// /// Returns: the name of the receiver. #[unsafe(method(name))] #[unsafe(method_family = none)] pub fn name(&self) -> Retained; #[cfg(feature = "NSString")] /// Returns the value of the receiver. /// /// Returns: the value of the receiver. #[unsafe(method(value))] #[unsafe(method_family = none)] pub fn value(&self) -> Retained; #[cfg(feature = "NSDate")] /// Returns the expires date of the receiver. /// /// Returns: the expires date of the receiver. /// /// The expires date is the date when the cookie should be /// deleted. The result will be nil if there is no specific expires /// date. This will be the case only for "session-only" cookies. /// /// Returns: The expires date of the receiver. #[unsafe(method(expiresDate))] #[unsafe(method_family = none)] pub fn expiresDate(&self) -> Option>; /// Returns whether the receiver is session-only. /// /// Returns: YES if this receiver should be discarded at the end of the /// session (regardless of expiration date), NO if receiver need not /// be discarded at the end of the session. #[unsafe(method(isSessionOnly))] #[unsafe(method_family = none)] pub fn isSessionOnly(&self) -> bool; #[cfg(feature = "NSString")] /// Returns the domain of the receiver. /// /// This value specifies URL domain to which the cookie /// should be sent. A domain with a leading dot means the cookie /// should be sent to subdomains as well, assuming certain other /// restrictions are valid. See RFC 2965 for more detail. /// /// Returns: The domain of the receiver. #[unsafe(method(domain))] #[unsafe(method_family = none)] pub fn domain(&self) -> Retained; #[cfg(feature = "NSString")] /// Returns the path of the receiver. /// /// This value specifies the URL path under the cookie's /// domain for which this cookie should be sent. The cookie will also /// be sent for children of that path, so "/" is the most general. /// /// Returns: The path of the receiver. #[unsafe(method(path))] #[unsafe(method_family = none)] pub fn path(&self) -> Retained; /// Returns whether the receiver should be sent only over /// secure channels /// /// Cookies may be marked secure by a server (or by a javascript). /// Cookies marked as such must only be sent via an encrypted connection to /// trusted servers (i.e. via SSL or TLS), and should not be delivered to any /// javascript applications to prevent cross-site scripting vulnerabilities. /// /// Returns: YES if this cookie should be sent only over secure channels, /// NO otherwise. #[unsafe(method(isSecure))] #[unsafe(method_family = none)] pub fn isSecure(&self) -> bool; /// Returns whether the receiver should only be sent to HTTP servers /// per RFC 2965 /// /// Cookies may be marked as HTTPOnly by a server (or by a javascript). /// Cookies marked as such must only be sent via HTTP Headers in HTTP Requests /// for URL's that match both the path and domain of the respective Cookies. /// Specifically these cookies should not be delivered to any javascript /// applications to prevent cross-site scripting vulnerabilities. /// /// Returns: YES if this cookie should only be sent via HTTP headers, /// NO otherwise. #[unsafe(method(isHTTPOnly))] #[unsafe(method_family = none)] pub fn isHTTPOnly(&self) -> bool; #[cfg(feature = "NSString")] /// Returns the comment of the receiver. /// /// This value specifies a string which is suitable for /// presentation to the user explaining the contents and purpose of this /// cookie. It may be nil. /// /// Returns: The comment of the receiver, or nil if the receiver has no /// comment. #[unsafe(method(comment))] #[unsafe(method_family = none)] pub fn comment(&self) -> Option>; #[cfg(feature = "NSURL")] /// Returns the comment URL of the receiver. /// /// This value specifies a URL which is suitable for /// presentation to the user as a link for further information about /// this cookie. It may be nil. /// /// Returns: The comment URL of the receiver, or nil if the receiver /// has no comment URL. #[unsafe(method(commentURL))] #[unsafe(method_family = none)] pub fn commentURL(&self) -> Option>; #[cfg(all(feature = "NSArray", feature = "NSValue"))] /// Returns the list ports to which the receiver should be /// sent. /// /// This value specifies an NSArray of NSNumbers /// (containing integers) which specify the only ports to which this /// cookie should be sent. /// /// Returns: The list ports to which the receiver should be sent. The /// array may be nil, in which case this cookie can be sent to any /// port. #[unsafe(method(portList))] #[unsafe(method_family = none)] pub fn portList(&self) -> Option>>; #[cfg(feature = "NSString")] /// Returns the value of the same site attribute on the cookie. /// /// Cookies can be marked with an attribute Strict or Lax. /// Cookies marked with "strict" (NSHTTPCookieSameSiteStrict) are not sent along with cross-site requests. /// Cookies marked with "lax" (NSHTTPCookieSameSiteLax) sent along cross-site requests provided the /// cross-site requests are top-level-requests (one that changes the url in the address bar). /// The attribute value is canonicalized and stored. Any value other than the default (strict and lax) will be ignored. /// /// Returns: strict or lax. The result could also be nil, in which case the /// cookie will be sent along with all cross-site requests. #[unsafe(method(sameSitePolicy))] #[unsafe(method_family = none)] pub fn sameSitePolicy(&self) -> Option>; ); } /// Methods declared on superclass `NSObject`. impl NSHTTPCookie { extern_methods!( #[unsafe(method(init))] #[unsafe(method_family = init)] pub fn init(this: Allocated) -> Retained; #[unsafe(method(new))] #[unsafe(method_family = new)] pub fn new() -> Retained; ); } impl DefaultRetained for NSHTTPCookie { #[inline] fn default_retained() -> Retained { Self::new() } }