objc2_foundation/generated/
NSRange.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ptr::NonNull;
4use objc2::__framework_prelude::*;
5
6use crate::*;
7
8/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsrangepointer?language=objc)
9pub type NSRangePointer = *mut NSRange;
10
11// TODO: pub fn NSMakeRange(loc: NSUInteger,len: NSUInteger,) -> NSRange;
12
13// TODO: pub fn NSMaxRange(range: NSRange,) -> NSUInteger;
14
15// TODO: pub fn NSLocationInRange(loc: NSUInteger,range: NSRange,) -> Bool;
16
17// TODO: pub fn NSEqualRanges(range1: NSRange,range2: NSRange,) -> Bool;
18
19#[inline]
20pub extern "C-unwind" fn NSUnionRange(range1: NSRange, range2: NSRange) -> NSRange {
21    extern "C-unwind" {
22        fn NSUnionRange(range1: NSRange, range2: NSRange) -> NSRange;
23    }
24    unsafe { NSUnionRange(range1, range2) }
25}
26
27#[inline]
28pub extern "C-unwind" fn NSIntersectionRange(range1: NSRange, range2: NSRange) -> NSRange {
29    extern "C-unwind" {
30        fn NSIntersectionRange(range1: NSRange, range2: NSRange) -> NSRange;
31    }
32    unsafe { NSIntersectionRange(range1, range2) }
33}
34
35#[cfg(feature = "NSString")]
36impl NSString {
37    #[doc(alias = "NSStringFromRange")]
38    #[cfg(feature = "NSString")]
39    #[inline]
40    pub fn from_range(range: NSRange) -> Retained<NSString> {
41        extern "C-unwind" {
42            fn NSStringFromRange(range: NSRange) -> *mut NSString;
43        }
44        let ret = unsafe { NSStringFromRange(range) };
45        unsafe { Retained::retain_autoreleased(ret) }
46            .expect("function was marked as returning non-null, but actually returned NULL")
47    }
48}
49
50#[cfg(feature = "NSString")]
51#[inline]
52pub extern "C-unwind" fn NSRangeFromString(a_string: &NSString) -> NSRange {
53    extern "C-unwind" {
54        fn NSRangeFromString(a_string: &NSString) -> NSRange;
55    }
56    unsafe { NSRangeFromString(a_string) }
57}
58
59/// NSValueRangeExtensions.
60#[cfg(feature = "NSValue")]
61impl NSValue {
62    extern_methods!(
63        #[unsafe(method(valueWithRange:))]
64        #[unsafe(method_family = none)]
65        pub unsafe fn valueWithRange(range: NSRange) -> Retained<NSValue>;
66
67        #[unsafe(method(rangeValue))]
68        #[unsafe(method_family = none)]
69        pub unsafe fn rangeValue(&self) -> NSRange;
70    );
71}
72
73#[cfg(feature = "NSString")]
74#[deprecated = "renamed to `NSString::from_range`"]
75#[inline]
76pub extern "C-unwind" fn NSStringFromRange(range: NSRange) -> Retained<NSString> {
77    extern "C-unwind" {
78        fn NSStringFromRange(range: NSRange) -> *mut NSString;
79    }
80    let ret = unsafe { NSStringFromRange(range) };
81    unsafe { Retained::retain_autoreleased(ret) }
82        .expect("function was marked as returning non-null, but actually returned NULL")
83}