//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use objc2::__framework_prelude::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsxmlnodeoptions?language=objc)
// NS_OPTIONS
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSXMLNodeOptions(pub NSUInteger);
bitflags::bitflags! {
    impl NSXMLNodeOptions: NSUInteger {
        #[doc(alias = "NSXMLNodeOptionsNone")]
        const NodeOptionsNone = 0;
        #[doc(alias = "NSXMLNodeIsCDATA")]
        const NodeIsCDATA = 1<<0;
        #[doc(alias = "NSXMLNodeExpandEmptyElement")]
        const NodeExpandEmptyElement = 1<<1;
        #[doc(alias = "NSXMLNodeCompactEmptyElement")]
        const NodeCompactEmptyElement = 1<<2;
        #[doc(alias = "NSXMLNodeUseSingleQuotes")]
        const NodeUseSingleQuotes = 1<<3;
        #[doc(alias = "NSXMLNodeUseDoubleQuotes")]
        const NodeUseDoubleQuotes = 1<<4;
        #[doc(alias = "NSXMLNodeNeverEscapeContents")]
        const NodeNeverEscapeContents = 1<<5;
        #[doc(alias = "NSXMLDocumentTidyHTML")]
        const DocumentTidyHTML = 1<<9;
        #[doc(alias = "NSXMLDocumentTidyXML")]
        const DocumentTidyXML = 1<<10;
        #[doc(alias = "NSXMLDocumentValidate")]
        const DocumentValidate = 1<<13;
        #[doc(alias = "NSXMLNodeLoadExternalEntitiesAlways")]
        const NodeLoadExternalEntitiesAlways = 1<<14;
        #[doc(alias = "NSXMLNodeLoadExternalEntitiesSameOriginOnly")]
        const NodeLoadExternalEntitiesSameOriginOnly = 1<<15;
        #[doc(alias = "NSXMLNodeLoadExternalEntitiesNever")]
        const NodeLoadExternalEntitiesNever = 1<<19;
        #[doc(alias = "NSXMLDocumentXInclude")]
        const DocumentXInclude = 1<<16;
        #[doc(alias = "NSXMLNodePrettyPrint")]
        const NodePrettyPrint = 1<<17;
        #[doc(alias = "NSXMLDocumentIncludeContentTypeDeclaration")]
        const DocumentIncludeContentTypeDeclaration = 1<<18;
        #[doc(alias = "NSXMLNodePreserveNamespaceOrder")]
        const NodePreserveNamespaceOrder = 1<<20;
        #[doc(alias = "NSXMLNodePreserveAttributeOrder")]
        const NodePreserveAttributeOrder = 1<<21;
        #[doc(alias = "NSXMLNodePreserveEntities")]
        const NodePreserveEntities = 1<<22;
        #[doc(alias = "NSXMLNodePreservePrefixes")]
        const NodePreservePrefixes = 1<<23;
        #[doc(alias = "NSXMLNodePreserveCDATA")]
        const NodePreserveCDATA = 1<<24;
        #[doc(alias = "NSXMLNodePreserveWhitespace")]
        const NodePreserveWhitespace = 1<<25;
        #[doc(alias = "NSXMLNodePreserveDTD")]
        const NodePreserveDTD = 1<<26;
        #[doc(alias = "NSXMLNodePreserveCharacterReferences")]
        const NodePreserveCharacterReferences = 1<<27;
        #[doc(alias = "NSXMLNodePromoteSignificantWhitespace")]
        const NodePromoteSignificantWhitespace = 1<<28;
        #[doc(alias = "NSXMLNodePreserveEmptyElements")]
        const NodePreserveEmptyElements = NSXMLNodeOptions::NodeExpandEmptyElement.0|NSXMLNodeOptions::NodeCompactEmptyElement.0;
        #[doc(alias = "NSXMLNodePreserveQuotes")]
        const NodePreserveQuotes = NSXMLNodeOptions::NodeUseSingleQuotes.0|NSXMLNodeOptions::NodeUseDoubleQuotes.0;
        #[doc(alias = "NSXMLNodePreserveAll")]
        const NodePreserveAll = NSXMLNodeOptions::NodePreserveNamespaceOrder.0|NSXMLNodeOptions::NodePreserveAttributeOrder.0|NSXMLNodeOptions::NodePreserveEntities.0|NSXMLNodeOptions::NodePreservePrefixes.0|NSXMLNodeOptions::NodePreserveCDATA.0|NSXMLNodeOptions::NodePreserveEmptyElements.0|NSXMLNodeOptions::NodePreserveQuotes.0|NSXMLNodeOptions::NodePreserveWhitespace.0|NSXMLNodeOptions::NodePreserveDTD.0|NSXMLNodeOptions::NodePreserveCharacterReferences.0|0xFFF00000;
    }
}

unsafe impl Encode for NSXMLNodeOptions {
    const ENCODING: Encoding = NSUInteger::ENCODING;
}

unsafe impl RefEncode for NSXMLNodeOptions {
    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
