1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use crate::*;
extern_class!(
/// Represents a characteristic's descriptor.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/corebluetooth/cbdescriptor?language=objc)
#[unsafe(super(CBAttribute, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CBAttribute")]
pub struct CBDescriptor;
);
#[cfg(feature = "CBAttribute")]
extern_conformance!(
unsafe impl NSObjectProtocol for CBDescriptor {}
);
#[cfg(feature = "CBAttribute")]
impl CBDescriptor {
extern_methods!(
#[cfg(feature = "CBCharacteristic")]
/// A back-pointer to the characteristic this descriptor belongs to.
#[unsafe(method(characteristic))]
#[unsafe(method_family = none)]
pub unsafe fn characteristic(&self) -> Option<Retained<CBCharacteristic>>;
/// The value of the descriptor. The corresponding value types for the various descriptors are detailed in
///
/// ```text
/// CBUUID.h
/// ```
///
/// .
#[unsafe(method(value))]
#[unsafe(method_family = none)]
pub unsafe fn value(&self) -> Option<Retained<AnyObject>>;
);
}
/// Methods declared on superclass `CBAttribute`.
#[cfg(feature = "CBAttribute")]
impl CBDescriptor {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "CBAttribute")]
impl CBDescriptor {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
/// Used to create a local characteristic descriptor, which can be added to the local database via
/// <code>
/// CBPeripheralManager
/// </code>
/// .
/// Once a descriptor is published, it is cached and can no longer be changed.
/// Descriptor types are detailed in
///
/// ```text
/// CBUUID.h
/// ```
///
/// , but only the
/// <code>
/// Characteristic User Description
/// </code>
/// and
/// <code>
/// Characteristic Presentation
/// Format
/// </code>
/// descriptors are currently supported. The
/// <code>
/// Characteristic Extended Properties
/// </code>
/// and
/// <code>
/// Client Characteristic
/// Configuration
/// </code>
/// descriptors will be created automatically upon publication of the parent service, depending on the properties of the characteristic itself.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/corebluetooth/cbmutabledescriptor?language=objc)
#[unsafe(super(CBDescriptor, CBAttribute, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CBAttribute")]
pub struct CBMutableDescriptor;
);
#[cfg(feature = "CBAttribute")]
extern_conformance!(
unsafe impl NSObjectProtocol for CBMutableDescriptor {}
);
#[cfg(feature = "CBAttribute")]
impl CBMutableDescriptor {
extern_methods!(
#[cfg(feature = "CBUUID")]
/// Parameter `UUID`: The Bluetooth UUID of the descriptor.
///
/// Parameter `value`: The value of the descriptor.
///
///
/// Returns a decriptor, initialized with a service type and value. The
/// <i>
/// value
/// </i>
/// is required and cannot be updated dynamically
/// once the parent service has been published.
///
/// # Safety
///
/// `value` should be of the correct type.
#[unsafe(method(initWithType:value:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithType_value(
this: Allocated<Self>,
uuid: &CBUUID,
value: Option<&AnyObject>,
) -> Retained<Self>;
);
}
/// Methods declared on superclass `CBAttribute`.
#[cfg(feature = "CBAttribute")]
impl CBMutableDescriptor {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(feature = "CBAttribute")]
impl CBMutableDescriptor {
extern_methods!(
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}