Source code

Revision control

Copy as Markdown

Other Tools

//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
/// An XML element
///
/// Note: Trying to add a document, namespace, attribute, or node with a parent throws an exception. To add a node with a parent first detach or create a copy of it.
///
#[unsafe(super(NSXMLNode, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "NSXMLNode")]
pub struct NSXMLElement;
);
#[cfg(all(feature = "NSObject", feature = "NSXMLNode"))]
extern_conformance!(
unsafe impl NSCopying for NSXMLElement {}
);
#[cfg(all(feature = "NSObject", feature = "NSXMLNode"))]
unsafe impl CopyingHelper for NSXMLElement {
type Result = Self;
}
#[cfg(feature = "NSXMLNode")]
extern_conformance!(
unsafe impl NSObjectProtocol for NSXMLElement {}
);
#[cfg(feature = "NSXMLNode")]
impl NSXMLElement {
extern_methods!(
#[cfg(feature = "NSString")]
/// Returns an element
/// <tt>
/// <
/// name>
/// <
/// /name>
/// </tt>
/// .
#[unsafe(method(initWithName:))]
#[unsafe(method_family = init)]
pub fn initWithName(this: Allocated<Self>, name: &NSString) -> Retained<Self>;
#[cfg(feature = "NSString")]
/// Returns an element whose full QName is specified.
#[unsafe(method(initWithName:URI:))]
#[unsafe(method_family = init)]
pub fn initWithName_URI(
this: Allocated<Self>,
name: &NSString,
uri: Option<&NSString>,
) -> Retained<Self>;
#[cfg(feature = "NSString")]
/// Returns an element with a single text node child
/// <tt>
/// <
/// name>string
/// <
/// /name>
/// </tt>
/// .
#[unsafe(method(initWithName:stringValue:))]
#[unsafe(method_family = init)]
pub fn initWithName_stringValue(
this: Allocated<Self>,
name: &NSString,
string: Option<&NSString>,
) -> Retained<Self>;
#[cfg(all(feature = "NSError", feature = "NSString"))]
/// Returns an element created from a string. Parse errors are collected in
/// <tt>
/// error
/// </tt>
/// .
#[unsafe(method(initWithXMLString:error:_))]
#[unsafe(method_family = init)]
pub fn initWithXMLString_error(
this: Allocated<Self>,
string: &NSString,
) -> Result<Retained<Self>, Retained<NSError>>;
#[cfg(feature = "NSXMLNodeOptions")]
#[unsafe(method(initWithKind:options:))]
#[unsafe(method_family = init)]
pub fn initWithKind_options(
this: Allocated<Self>,
kind: NSXMLNodeKind,
options: NSXMLNodeOptions,
) -> Retained<Self>;
#[cfg(all(feature = "NSArray", feature = "NSString"))]
/// Returns all of the child elements that match this name.
#[unsafe(method(elementsForName:))]
#[unsafe(method_family = none)]
pub fn elementsForName(&self, name: &NSString) -> Retained<NSArray<NSXMLElement>>;
#[cfg(all(feature = "NSArray", feature = "NSString"))]
/// Returns all of the child elements that match this localname URI pair.
#[unsafe(method(elementsForLocalName:URI:))]
#[unsafe(method_family = none)]
pub fn elementsForLocalName_URI(
&self,
local_name: &NSString,
uri: Option<&NSString>,
) -> Retained<NSArray<NSXMLElement>>;
/// Adds an attribute. Attributes with duplicate names are not added.
#[unsafe(method(addAttribute:))]
#[unsafe(method_family = none)]
pub fn addAttribute(&self, attribute: &NSXMLNode);
#[cfg(feature = "NSString")]
/// Removes an attribute based on its name.
#[unsafe(method(removeAttributeForName:))]
#[unsafe(method_family = none)]
pub fn removeAttributeForName(&self, name: &NSString);
#[cfg(feature = "NSArray")]
/// Set the attributes. In the case of duplicate names, the first attribute with the name is used.
#[unsafe(method(attributes))]
#[unsafe(method_family = none)]
pub fn attributes(&self) -> Option<Retained<NSArray<NSXMLNode>>>;
#[cfg(feature = "NSArray")]
/// Setter for [`attributes`][Self::attributes].
///
/// This is [copied][crate::NSCopying::copy] when set.
#[unsafe(method(setAttributes:))]
#[unsafe(method_family = none)]
pub fn setAttributes(&self, attributes: Option<&NSArray<NSXMLNode>>);
#[cfg(all(feature = "NSDictionary", feature = "NSString"))]
/// Set the attributes based on a name-value dictionary.
#[unsafe(method(setAttributesWithDictionary:))]
#[unsafe(method_family = none)]
pub fn setAttributesWithDictionary(&self, attributes: &NSDictionary<NSString, NSString>);
#[cfg(feature = "NSString")]
/// Returns an attribute matching this name.
#[unsafe(method(attributeForName:))]
#[unsafe(method_family = none)]
pub fn attributeForName(&self, name: &NSString) -> Option<Retained<NSXMLNode>>;
#[cfg(feature = "NSString")]
/// Returns an attribute matching this localname URI pair.
#[unsafe(method(attributeForLocalName:URI:))]
#[unsafe(method_family = none)]
pub fn attributeForLocalName_URI(
&self,
local_name: &NSString,
uri: Option<&NSString>,
) -> Option<Retained<NSXMLNode>>;
/// Adds a namespace. Namespaces with duplicate names are not added.
#[unsafe(method(addNamespace:))]
#[unsafe(method_family = none)]
pub fn addNamespace(&self, a_namespace: &NSXMLNode);
#[cfg(feature = "NSString")]
/// Removes a namespace with a particular name.
#[unsafe(method(removeNamespaceForPrefix:))]
#[unsafe(method_family = none)]
pub fn removeNamespaceForPrefix(&self, name: &NSString);
#[cfg(feature = "NSArray")]
/// Set the namespaces. In the case of duplicate names, the first namespace with the name is used.
#[unsafe(method(namespaces))]
#[unsafe(method_family = none)]
pub fn namespaces(&self) -> Option<Retained<NSArray<NSXMLNode>>>;
#[cfg(feature = "NSArray")]
/// Setter for [`namespaces`][Self::namespaces].
///
/// This is [copied][crate::NSCopying::copy] when set.
#[unsafe(method(setNamespaces:))]
#[unsafe(method_family = none)]
pub fn setNamespaces(&self, namespaces: Option<&NSArray<NSXMLNode>>);
#[cfg(feature = "NSString")]
/// Returns the namespace matching this prefix.
#[unsafe(method(namespaceForPrefix:))]
#[unsafe(method_family = none)]
pub fn namespaceForPrefix(&self, name: &NSString) -> Option<Retained<NSXMLNode>>;
#[cfg(feature = "NSString")]
/// Returns the namespace who matches the prefix of the name given. Looks in the entire namespace chain.
#[unsafe(method(resolveNamespaceForName:))]
#[unsafe(method_family = none)]
pub fn resolveNamespaceForName(&self, name: &NSString) -> Option<Retained<NSXMLNode>>;
#[cfg(feature = "NSString")]
/// Returns the URI of this prefix. Looks in the entire namespace chain.
#[unsafe(method(resolvePrefixForNamespaceURI:))]
#[unsafe(method_family = none)]
pub fn resolvePrefixForNamespaceURI(
&self,
namespace_uri: &NSString,
) -> Option<Retained<NSString>>;
/// Inserts a child at a particular index.
#[unsafe(method(insertChild:atIndex:))]
#[unsafe(method_family = none)]
pub fn insertChild_atIndex(&self, child: &NSXMLNode, index: NSUInteger);
#[cfg(feature = "NSArray")]
/// Insert several children at a particular index.
#[unsafe(method(insertChildren:atIndex:))]
#[unsafe(method_family = none)]
pub fn insertChildren_atIndex(&self, children: &NSArray<NSXMLNode>, index: NSUInteger);
/// Removes a child at a particular index.
#[unsafe(method(removeChildAtIndex:))]
#[unsafe(method_family = none)]
pub fn removeChildAtIndex(&self, index: NSUInteger);
#[cfg(feature = "NSArray")]
/// Removes all existing children and replaces them with the new children. Set children to nil to simply remove all children.
#[unsafe(method(setChildren:))]
#[unsafe(method_family = none)]
pub fn setChildren(&self, children: Option<&NSArray<NSXMLNode>>);
/// Adds a child to the end of the existing children.
#[unsafe(method(addChild:))]
#[unsafe(method_family = none)]
pub fn addChild(&self, child: &NSXMLNode);
/// Replaces a child at a particular index with another child.
#[unsafe(method(replaceChildAtIndex:withNode:))]
#[unsafe(method_family = none)]
pub fn replaceChildAtIndex_withNode(&self, index: NSUInteger, node: &NSXMLNode);
/// Adjacent text nodes are coalesced. If the node's value is the empty string, it is removed. This should be called with a value of NO before using XQuery or XPath.
#[unsafe(method(normalizeAdjacentTextNodesPreservingCDATA:))]
#[unsafe(method_family = none)]
pub fn normalizeAdjacentTextNodesPreservingCDATA(&self, preserve: bool);
);
}
/// Methods declared on superclass `NSXMLNode`.
#[cfg(feature = "NSXMLNode")]
impl NSXMLElement {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
/// Invokes
///
/// ```text
/// initWithKind:options:
/// ```
///
/// with options set to NSXMLNodeOptionsNone
#[unsafe(method(initWithKind:))]
#[unsafe(method_family = init)]
pub fn initWithKind(this: Allocated<Self>, kind: NSXMLNodeKind) -> Retained<Self>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "NSXMLNode")]
impl NSXMLElement {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
#[cfg(feature = "NSXMLNode")]
impl DefaultRetained for NSXMLElement {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}
/// NSDeprecated.
#[cfg(feature = "NSXMLNode")]
impl NSXMLElement {
extern_methods!(
#[cfg(feature = "NSDictionary")]
/// Set the attributes base on a name-value dictionary.
///
/// This method is deprecated and does not function correctly. Use -setAttributesWithDictionary: instead.
///
/// # Safety
///
/// `attributes` generic should be of the correct type.
#[deprecated]
#[unsafe(method(setAttributesAsDictionary:))]
#[unsafe(method_family = none)]
pub unsafe fn setAttributesAsDictionary(&self, attributes: &NSDictionary);
);
}