pub struct IOBluetoothSDPUUID { /* private fields */ }IOBluetoothSDPUUID 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>>
Available on crate feature objc2 only.
pub unsafe fn uuidWithBytes_length( bytes: *const c_void, length: c_uint, ) -> Option<Retained<Self>>
objc2 only.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.
§Safety
bytes must be a valid pointer.
Sourcepub unsafe fn uuidWithData(data: Option<&NSData>) -> Option<Retained<Self>>
Available on crate feature objc2 only.
pub unsafe fn uuidWithData(data: Option<&NSData>) -> Option<Retained<Self>>
objc2 only.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.
§Safety
data might not allow None.
Sourcepub unsafe fn uuid16(uuid16: BluetoothSDPUUID16) -> Option<Retained<Self>>
Available on crate features objc2 and Bluetooth only.
pub unsafe fn uuid16(uuid16: BluetoothSDPUUID16) -> Option<Retained<Self>>
objc2 and 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 features objc2 and Bluetooth only.
pub unsafe fn uuid32(uuid32: BluetoothSDPUUID32) -> Option<Retained<Self>>
objc2 and 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 features objc2 and IOBluetoothUserLib only.
pub unsafe fn withSDPUUIDRef( sdp_uuid_ref: Option<&IOBluetoothSDPUUIDRef>, ) -> Option<Retained<Self>>
objc2 and 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.
§Safety
sdp_uuid_ref might not allow None.
Sourcepub unsafe fn initWithUUID16(
this: Allocated<Self>,
uuid16: BluetoothSDPUUID16,
) -> Option<Retained<Self>>
Available on crate features objc2 and Bluetooth only.
pub unsafe fn initWithUUID16( this: Allocated<Self>, uuid16: BluetoothSDPUUID16, ) -> Option<Retained<Self>>
objc2 and 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 features objc2 and Bluetooth only.
pub unsafe fn initWithUUID32( this: Allocated<Self>, uuid32: BluetoothSDPUUID32, ) -> Option<Retained<Self>>
objc2 and 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 features objc2 and IOBluetoothUserLib only.
pub unsafe fn getSDPUUIDRef(&self) -> Option<Retained<IOBluetoothSDPUUIDRef>>
objc2 and 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>>
Available on crate feature objc2 only.
pub unsafe fn getUUIDWithLength( &self, new_length: c_uint, ) -> Option<Retained<Self>>
objc2 only.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
Available on crate feature objc2 only.
pub unsafe fn isEqualToUUID( &self, other_uuid: Option<&IOBluetoothSDPUUID>, ) -> bool
objc2 only.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.
§Safety
other_uuid might not allow None.
pub unsafe fn classForCoder(&self) -> Option<&'static AnyClass>
objc2 only.pub unsafe fn classForArchiver(&self) -> Option<&'static AnyClass>
objc2 only.pub unsafe fn classForPortCoder(&self) -> Option<&'static AnyClass>
objc2 only.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 fn description(&self) -> Retained<NSString>
Sourcepub unsafe fn getBytes_length(&self, buffer: NonNull<c_void>, length: usize)
pub unsafe fn getBytes_length(&self, buffer: NonNull<c_void>, length: usize)
§Safety
buffer must be a valid pointer.
pub fn isEqualToData(&self, other: &NSData) -> bool
pub fn writeToFile_atomically( &self, path: &NSString, use_auxiliary_file: bool, ) -> bool
pub fn base64EncodedStringWithOptions( &self, options: NSDataBase64EncodingOptions, ) -> Retained<NSString>
pub fn base64EncodedDataWithOptions( &self, options: NSDataBase64EncodingOptions, ) -> Retained<NSData>
Sourcepub unsafe fn getBytes(&self, buffer: NonNull<c_void>)
👎Deprecated: This method is unsafe because it could potentially cause buffer overruns. Use -getBytes:length: instead.
pub unsafe fn getBytes(&self, buffer: NonNull<c_void>)
§Safety
buffer must be a valid pointer.
pub 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
Available on crate feature objc2 only.
impl AsRef<AnyObject> for IOBluetoothSDPUUID
objc2 only.Source§impl AsRef<IOBluetoothSDPUUID> for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl AsRef<IOBluetoothSDPUUID> for IOBluetoothSDPUUID
objc2 only.Source§impl AsRef<NSData> for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl AsRef<NSData> for IOBluetoothSDPUUID
objc2 only.Source§impl AsRef<NSObject> for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl AsRef<NSObject> for IOBluetoothSDPUUID
objc2 only.Source§impl Borrow<AnyObject> for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl Borrow<AnyObject> for IOBluetoothSDPUUID
objc2 only.Source§impl Borrow<NSData> for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl Borrow<NSData> for IOBluetoothSDPUUID
objc2 only.Source§impl Borrow<NSObject> for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl Borrow<NSObject> for IOBluetoothSDPUUID
objc2 only.Source§impl ClassType for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl ClassType for IOBluetoothSDPUUID
objc2 only.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
Available on crate feature objc2 only.
impl Debug for IOBluetoothSDPUUID
objc2 only.Source§impl Deref for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl Deref for IOBluetoothSDPUUID
objc2 only.Source§impl Hash for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl Hash for IOBluetoothSDPUUID
objc2 only.Source§impl Message for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl Message for IOBluetoothSDPUUID
objc2 only.Source§impl NSObjectProtocol for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl NSObjectProtocol for IOBluetoothSDPUUID
objc2 only.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_refSource§fn isMemberOfClass(&self, cls: &AnyClass) -> bool
fn isMemberOfClass(&self, cls: &AnyClass) -> bool
Source§fn respondsToSelector(&self, aSelector: Sel) -> bool
fn respondsToSelector(&self, aSelector: Sel) -> bool
Source§fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
Source§fn debugDescription(&self) -> Retained<NSObject>
fn debugDescription(&self) -> Retained<NSObject>
Source§impl NSSecureCoding for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl NSSecureCoding for IOBluetoothSDPUUID
objc2 only.Source§impl PartialEq for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl PartialEq for IOBluetoothSDPUUID
objc2 only.Source§impl RefEncode for IOBluetoothSDPUUID
Available on crate feature objc2 only.
impl RefEncode for IOBluetoothSDPUUID
objc2 only.Source§const ENCODING_REF: Encoding = <NSData as ::objc2::RefEncode>::ENCODING_REF
const ENCODING_REF: Encoding = <NSData as ::objc2::RefEncode>::ENCODING_REF
impl DowncastTarget for IOBluetoothSDPUUID
objc2 only.impl Eq for IOBluetoothSDPUUID
objc2 only.impl NSCoding for IOBluetoothSDPUUID
objc2 only.