pub struct UlcpSyncRecord {Show 39 fields
pub capability_count: u32,
pub has_host_filtering: bool,
pub supports_offline_queue: bool,
pub supports_delegated_ack: bool,
pub supports_device_name: bool,
pub supports_lora: bool,
pub supports_duty_cycle_limit: bool,
pub supports_battery: bool,
pub supports_repeater: bool,
pub supports_ident: bool,
pub supports_device_identity: bool,
pub supports_time: bool,
pub supports_gnss: bool,
pub supports_advert: bool,
pub phy_enabled: bool,
pub frequency_khz: u32,
pub transmit_power_dbm: i8,
pub bandwidth_hz: Option<u32>,
pub spreading_factor: Option<u8>,
pub coding_rate_denom: Option<u8>,
pub duty_cycle_now: Option<u16>,
pub duty_cycle_limit: Option<u16>,
pub saved: Option<SavedSnapshotRecord>,
pub queued_frames: Option<u16>,
pub dropped_frames: Option<u32>,
pub filter_count: Option<u32>,
pub host_channel_count: Option<u32>,
pub host_peer_count: Option<u32>,
pub auto_ack: Option<bool>,
pub repeater: Option<UlcpRepeaterSettingsRecord>,
pub dev_peer_keys: Option<Vec<Vec<u8>>>,
pub dev_channel_ids: Option<Vec<Vec<u8>>>,
pub ident_role: Option<u8>,
pub ident_mobile: Option<bool>,
pub dev_discoverable: Option<bool>,
pub tz_offset_min: Option<i16>,
pub gnss: Option<UlcpGnssSettingsRecord>,
pub advert: Option<UlcpAdvertSettingsRecord>,
pub unreadable_properties: Vec<u32>,
}Expand description
Read-only, capability-gated device state gathered after host ownership has been resolved. Counts describe digest forms and contain no key material.
Fields§
§capability_count: u32§has_host_filtering: bool§supports_offline_queue: bool§supports_delegated_ack: bool§supports_device_name: bool§supports_lora: bool§supports_duty_cycle_limit: bool§supports_battery: boolThe device measures its own power state (CAP_BATTERY). A device
without it never reports a battery, so callers have nothing to show.
supports_repeater: boolThe device can forward for the mesh on its own (CAP_REPEATER).
supports_ident: boolThe device serves and configures its own advertised node identity
(CAP_IDENT).
supports_device_identity: boolThe device has an identity domain of its own (CAP_DEV_IDENTITY),
including the PROP_DEV_PEERS list.
supports_time: boolThe device keeps a wall clock (CAP_TIME). It says nothing about
where the time comes from, or whether the device currently knows
it — an unset clock is a device with CAP_TIME and no epoch.
supports_gnss: boolA GNSS receiver is fitted (CAP_GNSS), so the positioning
properties exist and the device can locate itself.
supports_advert: boolThe device announces itself on a schedule of its own
(CAP_ADVERT).
phy_enabled: bool§frequency_khz: u32§transmit_power_dbm: i8§bandwidth_hz: Option<u32>§spreading_factor: Option<u8>§coding_rate_denom: Option<u8>§duty_cycle_now: Option<u16>§duty_cycle_limit: Option<u16>§saved: Option<SavedSnapshotRecord>§queued_frames: Option<u16>§dropped_frames: Option<u32>§filter_count: Option<u32>§host_channel_count: Option<u32>§host_peer_count: Option<u32>§auto_ack: Option<bool>§repeater: Option<UlcpRepeaterSettingsRecord>Present when supports_repeater and the device reported the whole
policy.
dev_peer_keys: Option<Vec<Vec<u8>>>PROP_DEV_PEERS: the peer public keys stored on the device
identity, read back losslessly. Present when
supports_device_identity and the device reported the list.
dev_channel_ids: Option<Vec<Vec<u8>>>PROP_DEV_CHANNEL_KEYS: the two-octet identifiers of the channels the
device identity has joined. Key material is never read back, so a
caller names these by deriving identifiers from the keys it holds; one
that matches nothing locally is a channel the device knows and this
phone does not.
ident_role: Option<u8>PROP_IDENT_ROLE. None covers “the device derives its role from
what it is actually doing”, “no CAP_IDENT”, and “the device would
not report it” — supports_ident and unreadable_properties
distinguish them.
ident_mobile: Option<bool>PROP_IDENT_MOBILE. Present when supports_ident and the device
reported it.
dev_discoverable: Option<bool>PROP_DEV_DISCOVERABLE: whether the device identity answers
Identity Requests. Present when supports_device_identity and the
device reported it.
tz_offset_min: Option<i16>PROP_TZ_OFFSET in minutes east of UTC. Present when
supports_time and the device reported it.
The zone is configuration and the epoch is not: where a device is meant to be is known even when what time it is is not, which is why this is here and the clock reading is on the session snapshot.
gnss: Option<UlcpGnssSettingsRecord>The positioning policy. Present when supports_gnss and the
device reported the whole of it.
advert: Option<UlcpAdvertSettingsRecord>The advertisement policy. Present when supports_advert and the
device reported the whole of it.
unreadable_properties: Vec<u32>Capability-gated properties the device advertised but would not report, in ascending order.
A device that refuses a property — old firmware behind a newer capability, a property it never implemented — is a device with an unknown setting, not one this phone cannot administer. Their values are absent above, they are left out of configuration writes, and nothing about them can be verified after a save.
Trait Implementations§
Source§impl Clone for UlcpSyncRecord
impl Clone for UlcpSyncRecord
Source§fn clone(&self) -> UlcpSyncRecord
fn clone(&self) -> UlcpSyncRecord
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<UT> ConvertError<UT> for UlcpSyncRecord
impl<UT> ConvertError<UT> for UlcpSyncRecord
fn try_convert_unexpected_callback_error( e: UnexpectedUniFFICallbackError, ) -> Result<Self>
Source§impl Debug for UlcpSyncRecord
impl Debug for UlcpSyncRecord
Source§impl<UT> FfiConverter<UT> for UlcpSyncRecord
impl<UT> FfiConverter<UT> for UlcpSyncRecord
Source§const TYPE_ID_META: MetadataBuffer
const TYPE_ID_META: MetadataBuffer
Source§type FfiType = RustBuffer
type FfiType = RustBuffer
Source§fn lower(v: Self) -> RustBuffer
fn lower(v: Self) -> RustBuffer
Source§fn try_lift(buf: RustBuffer) -> Result<Self>
fn try_lift(buf: RustBuffer) -> Result<Self>
Source§impl<UT> Lift<UT> for UlcpSyncRecord
impl<UT> Lift<UT> for UlcpSyncRecord
Source§impl<UT> LiftRef<UT> for UlcpSyncRecord
impl<UT> LiftRef<UT> for UlcpSyncRecord
type LiftType = UlcpSyncRecord
Source§impl<UT> LiftReturn<UT> for UlcpSyncRecord
impl<UT> LiftReturn<UT> for UlcpSyncRecord
Source§type ReturnType = <UlcpSyncRecord as Lift<UT>>::FfiType
type ReturnType = <UlcpSyncRecord as Lift<UT>>::FfiType
Source§fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
Source§fn lift_foreign_return(
ffi_return: Self::ReturnType,
call_status: RustCallStatus,
) -> Self
fn lift_foreign_return( ffi_return: Self::ReturnType, call_status: RustCallStatus, ) -> Self
Source§fn lift_error(_buf: RustBuffer) -> Self
fn lift_error(_buf: RustBuffer) -> Self
Source§fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
Source§impl<UT> Lower<UT> for UlcpSyncRecord
impl<UT> Lower<UT> for UlcpSyncRecord
type FfiType = <UlcpSyncRecord as FfiConverter<UT>>::FfiType
fn lower(obj: Self) -> Self::FfiType
fn write(obj: Self, buf: &mut Vec<u8>)
Source§fn lower_into_rust_buffer(obj: Self) -> RustBuffer
fn lower_into_rust_buffer(obj: Self) -> RustBuffer
Source§impl<UT> LowerError<UT> for UlcpSyncRecord
impl<UT> LowerError<UT> for UlcpSyncRecord
Source§fn lower_error(obj: Self) -> RustBuffer
fn lower_error(obj: Self) -> RustBuffer
Source§impl<UT> LowerReturn<UT> for UlcpSyncRecord
impl<UT> LowerReturn<UT> for UlcpSyncRecord
Source§type ReturnType = <UlcpSyncRecord as Lower<UT>>::FfiType
type ReturnType = <UlcpSyncRecord as Lower<UT>>::FfiType
Source§fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
Source§fn handle_failed_lift(
error: LiftArgsError,
) -> Result<Self::ReturnType, RustCallError>
fn handle_failed_lift( error: LiftArgsError, ) -> Result<Self::ReturnType, RustCallError>
Source§impl PartialEq for UlcpSyncRecord
impl PartialEq for UlcpSyncRecord
Source§impl<UT> TypeId<UT> for UlcpSyncRecord
impl<UT> TypeId<UT> for UlcpSyncRecord
impl Eq for UlcpSyncRecord
impl StructuralPartialEq for UlcpSyncRecord
Auto Trait Implementations§
impl Freeze for UlcpSyncRecord
impl RefUnwindSafe for UlcpSyncRecord
impl Send for UlcpSyncRecord
impl Sync for UlcpSyncRecord
impl Unpin for UlcpSyncRecord
impl UnwindSafe for UlcpSyncRecord
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.