embassy_ha/
entity.rs

1use crate::EntityCategory;
2
3#[derive(Debug, Default)]
4pub struct EntityCommonConfig {
5    pub name: Option<&'static str>,
6    pub icon: Option<&'static str>,
7    pub category: Option<EntityCategory>,
8    pub picture: Option<&'static str>,
9}
10
11impl EntityCommonConfig {
12    pub(crate) fn populate(&self, config: &mut EntityConfig) {
13        config.name = self.name;
14        config.icon = self.icon;
15        config.category = self.category.map(|c| c.as_str());
16        config.picture = self.picture;
17    }
18}
19
20#[derive(Default)]
21pub(crate) struct EntityConfig {
22    pub id: &'static str,
23    pub name: Option<&'static str>,
24    pub domain: &'static str,
25    pub device_class: Option<&'static str>,
26    pub measurement_unit: Option<&'static str>,
27    pub icon: Option<&'static str>,
28    pub picture: Option<&'static str>,
29    pub category: Option<&'static str>,
30    pub state_class: Option<&'static str>,
31    pub schema: Option<&'static str>,
32    pub platform: Option<&'static str>,
33    pub min: Option<f32>,
34    pub max: Option<f32>,
35    pub step: Option<f32>,
36    pub mode: Option<&'static str>,
37    pub suggested_display_precision: Option<u8>,
38}