#[repr(C)]pub struct IOBluetoothSDPUUID { /* private fields */ }IOBluetoothSDPUUID and objc2 and objc2-foundation only.Expand description
An NSData subclass that represents a UUID as defined in the Bluetooth SDP spec.
The IOBluetoothSDPUUID class can represent a UUID of any valid size (16, 32 or 128 bits). It provides the ability to compare two UUIDs no matter what their size as well as the ability to promote the size of a UUID to a larger one.
See also Apple’s documentation
Implementations§
Source§impl IOBluetoothSDPUUID
impl IOBluetoothSDPUUID
Sourcepub unsafe fn uuidWithBytes_length(
bytes: *const c_void,
length: c_uint,
) -> Option<Retained<Self>>
pub unsafe fn uuidWithBytes_length( bytes: *const c_void, length: c_uint, ) -> Option<Retained<Self>>
Creates a new IOBluetoothSDPUUID object with the given bytes of the given length.
If the length is invalid for a UUID, nil is returned.
Parameter bytes: An array of bytes representing the UUID.
Parameter length: The length of the array of bytes.
Returns: Returns the new IOBluetoothSDPUUID object or nil on failure.
Sourcepub unsafe fn uuidWithData(data: Option<&NSData>) -> Option<Retained<Self>>
pub unsafe fn uuidWithData(data: Option<&NSData>) -> Option<Retained<Self>>
Creates a new IOBluetoothSDPUUID object from the given NSData.
If the length of the NSData is invalid for a UUID, nil is returned.
Parameter data: The NSData containing the UUID bytes.
Returns: Returns the new IOBluetoothSDPUUID object or nil on failure.
Sourcepub unsafe fn uuid16(uuid16: BluetoothSDPUUID16) -> Option<Retained<Self>>
Available on crate feature Bluetooth only.
pub unsafe fn uuid16(uuid16: BluetoothSDPUUID16) -> Option<Retained<Self>>
Bluetooth only.Creates a new 16-bit IOBluetoothSDPUUID with the given UUID16
Parameter uuid16: A scalar representing a 16-bit UUID
Returns: Returns the new IOBluetoothSDPUUID object.
Sourcepub unsafe fn uuid32(uuid32: BluetoothSDPUUID32) -> Option<Retained<Self>>
Available on crate feature Bluetooth only.
pub unsafe fn uuid32(uuid32: BluetoothSDPUUID32) -> Option<Retained<Self>>
Bluetooth only.Creates a new 32-bit IOBluetoothSDPUUID with the given UUID32
Parameter uuid32: A scalar representing a 32-bit UUID
Returns: Returns the new IOBluetoothSDPUUID object.
Sourcepub unsafe fn withSDPUUIDRef(
sdp_uuid_ref: Option<&IOBluetoothSDPUUIDRef>,
) -> Option<Retained<Self>>
👎DeprecatedAvailable on crate feature IOBluetoothUserLib only.
pub unsafe fn withSDPUUIDRef( sdp_uuid_ref: Option<&IOBluetoothSDPUUIDRef>, ) -> Option<Retained<Self>>
IOBluetoothUserLib only.Method call to convert an IOBluetoothSDPUUIDRef into an IOBluetoothSDPUUID *.
Parameter sdpUUIDRef: IOBluetoothSDPUUIDRef for which an IOBluetoothSDPUUID * is desired.
Returns: Returns the IOBluetoothSDPUUID * for the given IOBluetoothSDPUUIDRef.
Sourcepub unsafe fn initWithUUID16(
this: Allocated<Self>,
uuid16: BluetoothSDPUUID16,
) -> Option<Retained<Self>>
Available on crate feature Bluetooth only.
pub unsafe fn initWithUUID16( this: Allocated<Self>, uuid16: BluetoothSDPUUID16, ) -> Option<Retained<Self>>
Bluetooth only.Initializes a new 16-bit IOBluetoothSDPUUID with the given UUID16
Parameter uuid16: A scalar representing a 16-bit UUID
Returns: Returns self.
Sourcepub unsafe fn initWithUUID32(
this: Allocated<Self>,
uuid32: BluetoothSDPUUID32,
) -> Option<Retained<Self>>
Available on crate feature Bluetooth only.
pub unsafe fn initWithUUID32( this: Allocated<Self>, uuid32: BluetoothSDPUUID32, ) -> Option<Retained<Self>>
Bluetooth only.Creates a new 32-bit IOBluetoothSDPUUID with the given UUID32
Parameter uuid32: A scalar representing a 32-bit UUID
Returns: Returns self.
Sourcepub unsafe fn getSDPUUIDRef(&self) -> Option<Retained<IOBluetoothSDPUUIDRef>>
👎DeprecatedAvailable on crate feature IOBluetoothUserLib only.
pub unsafe fn getSDPUUIDRef(&self) -> Option<Retained<IOBluetoothSDPUUIDRef>>
IOBluetoothUserLib only.Returns an IOBluetoothSDPUUIDRef representation of the target IOBluetoothSDPUUID object.
Returns: Returns an IOBluetoothSDPUUIDRef representation of the target IOBluetoothSDPUUID object.
Sourcepub unsafe fn getUUIDWithLength(
&self,
new_length: c_uint,
) -> Option<Retained<Self>>
pub unsafe fn getUUIDWithLength( &self, new_length: c_uint, ) -> Option<Retained<Self>>
Returns an IOBluetoothSDPUUID object matching the target UUID, but with the given number of bytes.
If the target object is the same length as newLength, it returns self. If newLength is greater it creates a new IOBluetoothSDPUUID object with the correct value for the given length. If newLength is smaller, it will attempt to create a new IOBluetoothSDPUUID that is smaller if the data matches the Bluetooth UUID base. This downconversion is currently unimplemented.
Parameter newLength: The desired length for the UUID.
Returns: Returns an IOBluetoothSDPUUID object with the same data as the target but with the given length if it is possible to do so. Otherwise, nil is returned.
Sourcepub unsafe fn isEqualToUUID(
&self,
other_uuid: Option<&IOBluetoothSDPUUID>,
) -> bool
pub unsafe fn isEqualToUUID( &self, other_uuid: Option<&IOBluetoothSDPUUID>, ) -> bool
Compares the target IOBluetoothSDPUUID object with the given otherUUID object.
This method will compare the two UUID values independent of their length.
Parameter otherUUID: The UUID object to be compared with the target.
Returns: Returns true if the UUID values of each object are equal. This includes the case where the sizes are different but the data itself is the same when the Bluetooth UUID base is applied.
pub unsafe fn classForCoder(&self) -> Option<&'static AnyClass>
pub unsafe fn classForArchiver(&self) -> Option<&'static AnyClass>
pub unsafe fn classForPortCoder(&self) -> Option<&'static AnyClass>
Methods from Deref<Target = NSData>§
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub unsafe fn as_bytes_unchecked(&self) -> &[u8] ⓘ
pub unsafe fn as_bytes_unchecked(&self) -> &[u8] ⓘ
pub fn length(&self) -> usize
pub unsafe fn description(&self) -> Retained<NSString>
pub unsafe fn getBytes_length(&self, buffer: NonNull<c_void>, length: usize)
pub unsafe fn isEqualToData(&self, other: &NSData) -> bool
pub unsafe fn writeToFile_atomically( &self, path: &NSString, use_auxiliary_file: bool, ) -> bool
pub unsafe fn base64EncodedStringWithOptions( &self, options: NSDataBase64EncodingOptions, ) -> Retained<NSString>
pub unsafe fn base64EncodedDataWithOptions( &self, options: NSDataBase64EncodingOptions, ) -> Retained<NSData>
pub unsafe fn getBytes(&self, buffer: NonNull<c_void>)
pub unsafe fn base64Encoding(&self) -> Retained<NSString>
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for IOBluetoothSDPUUID
impl AsRef<AnyObject> for IOBluetoothSDPUUID
Source§impl AsRef<IOBluetoothSDPUUID> for IOBluetoothSDPUUID
impl AsRef<IOBluetoothSDPUUID> for IOBluetoothSDPUUID
Source§impl AsRef<NSData> for IOBluetoothSDPUUID
impl AsRef<NSData> for IOBluetoothSDPUUID
Source§impl AsRef<NSObject> for IOBluetoothSDPUUID
impl AsRef<NSObject> for IOBluetoothSDPUUID
Source§impl Borrow<AnyObject> for IOBluetoothSDPUUID
impl Borrow<AnyObject> for IOBluetoothSDPUUID
Source§impl Borrow<NSData> for IOBluetoothSDPUUID
impl Borrow<NSData> for IOBluetoothSDPUUID
Source§impl Borrow<NSObject> for IOBluetoothSDPUUID
impl Borrow<NSObject> for IOBluetoothSDPUUID
Source§impl ClassType for IOBluetoothSDPUUID
impl ClassType for IOBluetoothSDPUUID
Source§const NAME: &'static str = "IOBluetoothSDPUUID"
const NAME: &'static str = "IOBluetoothSDPUUID"
Source§type ThreadKind = <<IOBluetoothSDPUUID as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<IOBluetoothSDPUUID as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for IOBluetoothSDPUUID
impl Debug for IOBluetoothSDPUUID
Source§impl Deref for IOBluetoothSDPUUID
impl Deref for IOBluetoothSDPUUID
Source§impl Hash for IOBluetoothSDPUUID
impl Hash for IOBluetoothSDPUUID
Source§impl Message for IOBluetoothSDPUUID
impl Message for IOBluetoothSDPUUID
Source§impl NSObjectProtocol for IOBluetoothSDPUUID
impl NSObjectProtocol for IOBluetoothSDPUUID
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref