Skip to main content

ReportDataResp

Struct ReportDataResp 

Source
pub struct ReportDataResp<'a> {
    pub subscription_id: Option<u32>,
    pub attr_reports: Option<TLVContainer<'a, AttrResp<'a>, ArrayContainer>>,
    pub event_reports: Option<TLVContainer<'a, EventResp<'a>, ArrayContainer>>,
    pub more_chunks: Option<bool>,
    pub suppress_response: Option<bool>,
    pub interaction_model_revision: Option<u8>,
}
Expand description

Report Data Message

Corresponds to the ReportDataMessage TLV structure in the Interaction Model.

Fields§

§subscription_id: Option<u32>§attr_reports: Option<TLVContainer<'a, AttrResp<'a>, ArrayContainer>>§event_reports: Option<TLVContainer<'a, EventResp<'a>, ArrayContainer>>§more_chunks: Option<bool>§suppress_response: Option<bool>§interaction_model_revision: Option<u8>

interactionModelRevision (TLV context tag 0xFF). Mandatory in every IM message we send; modelled as Option<u8> so we tolerate peers that omit it (the C++ SDK is tolerant in practice).

Implementations§

Source§

impl<'a> ReportDataResp<'a>

Source

pub fn attrs<T>( &self, cluster: u32, attr: u32, ) -> impl Iterator<Item = (u16, Result<T, Error>)> + use<'_, 'a, T>
where T: FromTLV<'a> + 'a,

Iterate the entries in attr_reports whose path matches the given (cluster, attr) pair, in (endpoint, result) form.

  • Ok(T)AttrResp::Data entry; the embedded data is decoded via FromTLV into T.
  • Err(_)AttrResp::Status entry; the IMStatusCode becomes an Error. This catches access-check failures (UnsupportedAccess, …) and Unsupported{Endpoint,Cluster,Attribute} uniformly — the peer echoes the requested path on status, so the filter still matches those entries.
  • Entries with non-matching cluster/attr are silently skipped.
  • Entries with an absent endpoint in the path are skipped (would indicate a malformed report).

Wildcard reads (path missing endpoint, cluster, or attr in the request) legally produce multiple matching reports — the iterator yields one per expanded path, in wire order.

Trait Implementations§

Source§

impl<'a> AccessControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AccountLoginAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ActionsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ActivatedCarbonFilterMonitoringAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AdministratorCommissioningAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AirQualityAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AmbientContextSensingAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AmbientSensingUnionAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ApplicationBasicAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ApplicationLauncherAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AudioOutputAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> AvAnalysisAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> BallastConfigurationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> BasicInformationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> BindingAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> BooleanStateAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> BooleanStateConfigurationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> BridgedDeviceBasicInformationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CameraAvSettingsUserLevelManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CameraAvStreamManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CarbonDioxideConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CarbonMonoxideConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ChannelAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ChimeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ClosureControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ClosureDimensionAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ColorControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CommissionerControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CommodityMeteringAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CommodityPriceAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> CommodityTariffAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ContentAppObserverAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ContentControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ContentLauncherAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> Debug for ReportDataResp<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<'a> DescriptorAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DeviceEnergyManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DeviceEnergyManagementModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DiagnosticLogsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DishwasherAlarmAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DishwasherModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DoorLockAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> DynamicLightingAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> EcosystemInformationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ElectricalAlarmAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ElectricalDistributionAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ElectricalEnergyMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ElectricalGridConditionsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ElectricalPowerMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ElectricalProtectionAlarmAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> EnergyEvseAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> EnergyEvseModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> EnergyPreferenceAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> EthernetNetworkDiagnosticsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> FanControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> FaultInjectionAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> FixedLabelAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> FlowMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> FormaldehydeConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> FromTLV<'a> for ReportDataResp<'a>

Source§

fn from_tlv(element: &TLVElement<'a>) -> Result<ReportDataResp<'a>, Error>

Deserialize the type from a TLV-encoded element.
Source§

fn init_from_tlv( element: TLVElement<'a>, ) -> impl Init<ReportDataResp<'a>, Error>

Generate an in-place initializer for the type that initializes the type from a TLV-encoded element.
Source§

fn nullable_from_tlv(element: &TLVElement<'a>) -> Result<Self, Error>

Deserialize the type from a TLV-encoded element. Read more
Source§

fn init_nullable_from_tlv(element: TLVElement<'a>) -> impl Init<Self, Error>

Generate an in-place initializer for the type that initializes the type from a TLV-encoded element. Read more
Source§

impl<'a> GeneralCommissioningAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> GeneralDiagnosticsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> GroupKeyManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> GroupcastAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> GroupsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> HepaFilterMonitoringAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> HumidistatAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> IcdManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> IdentifyAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> IlluminanceMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> JointFabricAdministratorAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> JointFabricDatastoreAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> KeypadInputAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> LaundryDryerControlsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> LaundryWasherControlsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> LaundryWasherModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> LevelControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> LocalizationConfigurationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> LowPowerAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> MediaInputAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> MediaPlaybackAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> MessagesAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> MeterIdentificationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> MicrowaveOvenControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> MicrowaveOvenModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ModeSelectAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> NetworkCommissioningAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> NetworkIdentityManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> NitrogenDioxideConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OccupancySensingAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OnOffAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OperationalCredentialsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OperationalStateAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OtaSoftwareUpdateProviderAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OtaSoftwareUpdateRequestorAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OvenCavityOperationalStateAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OvenModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> OzoneConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> Pm1ConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> Pm10ConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> Pm25ConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PowerSourceAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PowerSourceConfigurationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PowerTopologyAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PressureMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ProximityRangingAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ProxyConfigurationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ProxyDiscoveryAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ProxyValidAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PulseWidthModulationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PumpConfigurationAndControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> PushAvStreamTransportAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RadonConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RefrigeratorAlarmAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RefrigeratorAndTemperatureControlledCabinetModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RelativeHumidityMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RvcCleanModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RvcOperationalStateAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> RvcRunModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> SampleMeiAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ScenesManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ServiceAreaAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> SmokeCoAlarmAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> SmokeConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> SoftwareDiagnosticsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> SoilMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> SwitchAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TargetNavigatorAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TemperatureControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TemperatureControlledCabinetTopologyAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TemperatureMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ThermostatAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ThermostatUserInterfaceConfigurationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ThreadBorderRouterManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ThreadNetworkDiagnosticsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ThreadNetworkDirectoryAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TimeFormatLocalizationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TimeSynchronizationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TlsCertificateManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TlsClientManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ToTLV for ReportDataResp<'a>

Source§

fn to_tlv<W>(&self, tag: &TLVTag, tw: W) -> Result<(), Error>
where W: TLVWrite,

Serialize the type to a TLV-encoded stream.
Source§

fn tlv_iter(&self, tag: TLVTag) -> impl Iterator<Item = Result<TLV<'_>, Error>>

Serialize the type as an iterator of TLV instances by potentially borrowing data from the type.
Source§

fn nullable_to_tlv<W>(&self, tag: &TLVTag, tw: W) -> Result<(), Error>
where W: TLVWrite,

Serialize the type to a TLV-encoded stream. Read more
Source§

fn nullable_tlv_iter( &self, tag: TLVTag, ) -> impl Iterator<Item = Result<TLV<'_>, Error>>

Serialize the type as an iterator of TLV instances by potentially borrowing data from the type. Read more
Source§

impl<'a> TotalVolatileOrganicCompoundsConcentrationMeasurementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> TryFrom<&TLVElement<'a>> for ReportDataResp<'a>

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from( element: &TLVElement<'a>, ) -> Result<ReportDataResp<'a>, <ReportDataResp<'a> as TryFrom<&TLVElement<'a>>>::Error>

Performs the conversion.
Source§

impl<'a> UnitLocalizationAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> UnitTestingAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> UserLabelAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ValveConfigurationAndControlAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WakeOnLanAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WaterHeaterManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WaterHeaterModeAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WaterTankLevelMonitoringAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WebRtcTransportProviderAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WebRtcTransportRequestorAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WiFiNetworkDiagnosticsAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WiFiNetworkManagementAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> WindowCoveringAttrResponses<'a> for ReportDataResp<'a>

Source§

impl<'a> ZoneManagementAttrResponses<'a> for ReportDataResp<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ReportDataResp<'a>

§

impl<'a> RefUnwindSafe for ReportDataResp<'a>

§

impl<'a> Send for ReportDataResp<'a>

§

impl<'a> Sync for ReportDataResp<'a>

§

impl<'a> Unpin for ReportDataResp<'a>

§

impl<'a> UnsafeUnpin for ReportDataResp<'a>

§

impl<'a> UnwindSafe for ReportDataResp<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, E> Init<T, E> for T

Source§

unsafe fn __init(self, slot: *mut T) -> Result<(), E>

Initializes slot. Read more
Source§

fn chain<F>(self, f: F) -> ChainInit<Self, F, T, E>
where F: FnOnce(&mut T) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, I> IntoFallibleInit<T> for I
where I: Init<T>,

Source§

fn into_fallible<E>(self) -> impl Init<T, E>

Convert the infallible initializer to a fallible one.
Source§

impl<Source, Target> OctetsInto<Target> for Source
where Target: OctetsFrom<Source>,

Source§

type Error = <Target as OctetsFrom<Source>>::Error

Source§

fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
Source§

fn octets_into(self) -> Target
where Self::Error: Into<Infallible>,

Performs an infallible conversion.
Source§

impl<T, E> PinInit<T, E> for T

Source§

unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E>

Initializes slot. Read more
Source§

fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>
where F: FnOnce(Pin<&mut T>) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V