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}