use objc2::__framework_prelude::*;
use crate::*;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSRegularExpressionOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSRegularExpressionOptions: NSUInteger {
const NSRegularExpressionCaseInsensitive = 1<<0;
const NSRegularExpressionAllowCommentsAndWhitespace = 1<<1;
const NSRegularExpressionIgnoreMetacharacters = 1<<2;
const NSRegularExpressionDotMatchesLineSeparators = 1<<3;
const NSRegularExpressionAnchorsMatchLines = 1<<4;
const NSRegularExpressionUseUnixLineSeparators = 1<<5;
const NSRegularExpressionUseUnicodeWordBoundaries = 1<<6;
}
}
unsafe impl Encode for NSRegularExpressionOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSRegularExpressionOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSRegularExpression;
unsafe impl ClassType for NSRegularExpression {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl Send for NSRegularExpression {}
unsafe impl Sync for NSRegularExpression {}
#[cfg(feature = "NSObject")]
unsafe impl NSCoding for NSRegularExpression {}
#[cfg(feature = "NSObject")]
unsafe impl NSCopying for NSRegularExpression {}
unsafe impl NSObjectProtocol for NSRegularExpression {}
#[cfg(feature = "NSObject")]
unsafe impl NSSecureCoding for NSRegularExpression {}
extern_methods!(
unsafe impl NSRegularExpression {
#[cfg(all(feature = "NSError", feature = "NSString"))]
#[method_id(@__retain_semantics Other regularExpressionWithPattern:options:error:_)]
pub unsafe fn regularExpressionWithPattern_options_error(
pattern: &NSString,
options: NSRegularExpressionOptions,
) -> Result<Retained<NSRegularExpression>, Retained<NSError>>;
#[cfg(all(feature = "NSError", feature = "NSString"))]
#[method_id(@__retain_semantics Init initWithPattern:options:error:_)]
pub unsafe fn initWithPattern_options_error(
this: Allocated<Self>,
pattern: &NSString,
options: NSRegularExpressionOptions,
) -> Result<Retained<Self>, Retained<NSError>>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other pattern)]
pub unsafe fn pattern(&self) -> Retained<NSString>;
#[method(options)]
pub unsafe fn options(&self) -> NSRegularExpressionOptions;
#[method(numberOfCaptureGroups)]
pub unsafe fn numberOfCaptureGroups(&self) -> NSUInteger;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other escapedPatternForString:)]
pub unsafe fn escapedPatternForString(string: &NSString) -> Retained<NSString>;
}
);
extern_methods!(
unsafe impl NSRegularExpression {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSMatchingOptions(pub NSUInteger);
bitflags::bitflags! {
impl NSMatchingOptions: NSUInteger {
const NSMatchingReportProgress = 1<<0;
const NSMatchingReportCompletion = 1<<1;
const NSMatchingAnchored = 1<<2;
const NSMatchingWithTransparentBounds = 1<<3;
const NSMatchingWithoutAnchoringBounds = 1<<4;
}
}
unsafe impl Encode for NSMatchingOptions {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSMatchingOptions {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct NSMatchingFlags(pub NSUInteger);
bitflags::bitflags! {
impl NSMatchingFlags: NSUInteger {
const NSMatchingProgress = 1<<0;
const NSMatchingCompleted = 1<<1;
const NSMatchingHitEnd = 1<<2;
const NSMatchingRequiredEnd = 1<<3;
const NSMatchingInternalError = 1<<4;
}
}
unsafe impl Encode for NSMatchingFlags {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for NSMatchingFlags {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_methods!(
unsafe impl NSRegularExpression {
#[cfg(all(
feature = "NSRange",
feature = "NSString",
feature = "NSTextCheckingResult",
feature = "block2"
))]
#[method(enumerateMatchesInString:options:range:usingBlock:)]
pub unsafe fn enumerateMatchesInString_options_range_usingBlock(
&self,
string: &NSString,
options: NSMatchingOptions,
range: NSRange,
block: &block2::Block<
dyn Fn(*mut NSTextCheckingResult, NSMatchingFlags, NonNull<Bool>) + '_,
>,
);
#[cfg(all(
feature = "NSArray",
feature = "NSRange",
feature = "NSString",
feature = "NSTextCheckingResult"
))]
#[method_id(@__retain_semantics Other matchesInString:options:range:)]
pub unsafe fn matchesInString_options_range(
&self,
string: &NSString,
options: NSMatchingOptions,
range: NSRange,
) -> Retained<NSArray<NSTextCheckingResult>>;
#[cfg(all(feature = "NSRange", feature = "NSString"))]
#[method(numberOfMatchesInString:options:range:)]
pub unsafe fn numberOfMatchesInString_options_range(
&self,
string: &NSString,
options: NSMatchingOptions,
range: NSRange,
) -> NSUInteger;
#[cfg(all(
feature = "NSRange",
feature = "NSString",
feature = "NSTextCheckingResult"
))]
#[method_id(@__retain_semantics Other firstMatchInString:options:range:)]
pub unsafe fn firstMatchInString_options_range(
&self,
string: &NSString,
options: NSMatchingOptions,
range: NSRange,
) -> Option<Retained<NSTextCheckingResult>>;
#[cfg(all(feature = "NSRange", feature = "NSString"))]
#[method(rangeOfFirstMatchInString:options:range:)]
pub unsafe fn rangeOfFirstMatchInString_options_range(
&self,
string: &NSString,
options: NSMatchingOptions,
range: NSRange,
) -> NSRange;
}
);
extern_methods!(
unsafe impl NSRegularExpression {
#[cfg(all(feature = "NSRange", feature = "NSString"))]
#[method_id(@__retain_semantics Other stringByReplacingMatchesInString:options:range:withTemplate:)]
pub unsafe fn stringByReplacingMatchesInString_options_range_withTemplate(
&self,
string: &NSString,
options: NSMatchingOptions,
range: NSRange,
templ: &NSString,
) -> Retained<NSString>;
#[cfg(all(feature = "NSRange", feature = "NSString"))]
#[method(replaceMatchesInString:options:range:withTemplate:)]
pub unsafe fn replaceMatchesInString_options_range_withTemplate(
&self,
string: &NSMutableString,
options: NSMatchingOptions,
range: NSRange,
templ: &NSString,
) -> NSUInteger;
#[cfg(all(feature = "NSString", feature = "NSTextCheckingResult"))]
#[method_id(@__retain_semantics Other replacementStringForResult:inString:offset:template:)]
pub unsafe fn replacementStringForResult_inString_offset_template(
&self,
result: &NSTextCheckingResult,
string: &NSString,
offset: NSInteger,
templ: &NSString,
) -> Retained<NSString>;
#[cfg(feature = "NSString")]
#[method_id(@__retain_semantics Other escapedTemplateForString:)]
pub unsafe fn escapedTemplateForString(string: &NSString) -> Retained<NSString>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSDataDetector;
unsafe impl ClassType for NSDataDetector {
#[inherits(NSObject)]
type Super = NSRegularExpression;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "NSObject")]
unsafe impl NSCoding for NSDataDetector {}
#[cfg(feature = "NSObject")]
unsafe impl NSCopying for NSDataDetector {}
unsafe impl NSObjectProtocol for NSDataDetector {}
#[cfg(feature = "NSObject")]
unsafe impl NSSecureCoding for NSDataDetector {}
extern_methods!(
unsafe impl NSDataDetector {
#[cfg(all(feature = "NSError", feature = "NSTextCheckingResult"))]
#[method_id(@__retain_semantics Other dataDetectorWithTypes:error:_)]
pub unsafe fn dataDetectorWithTypes_error(
checking_types: NSTextCheckingTypes,
) -> Result<Retained<NSDataDetector>, Retained<NSError>>;
#[cfg(all(feature = "NSError", feature = "NSTextCheckingResult"))]
#[method_id(@__retain_semantics Init initWithTypes:error:_)]
pub unsafe fn initWithTypes_error(
this: Allocated<Self>,
checking_types: NSTextCheckingTypes,
) -> Result<Retained<Self>, Retained<NSError>>;
#[cfg(feature = "NSTextCheckingResult")]
#[method(checkingTypes)]
pub unsafe fn checkingTypes(&self) -> NSTextCheckingTypes;
}
);
extern_methods!(
unsafe impl NSDataDetector {
#[cfg(all(feature = "NSError", feature = "NSString"))]
#[method_id(@__retain_semantics Init initWithPattern:options:error:_)]
pub unsafe fn initWithPattern_options_error(
this: Allocated<Self>,
pattern: &NSString,
options: NSRegularExpressionOptions,
) -> Result<Retained<Self>, Retained<NSError>>;
}
);
extern_methods!(
unsafe impl NSDataDetector {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);