gv100ad/model/
datensatz.rs1use chrono::NaiveDate;
2
3use super::{
4 gemeinde::GemeindeDaten,
5 gemeindeverband::GemeindeverbandDaten,
6 kreis::KreisDaten,
7 land::LandDaten,
8 regierungsbezirk::RegierungsbezirkDaten,
9 region::RegionDaten,
10};
11
12#[derive(Clone, Debug)]
14pub enum Datensatz {
15 Land(LandDaten),
16 Regierungsbezirk(RegierungsbezirkDaten),
17 Region(RegionDaten),
18 Kreis(KreisDaten),
19 Gemeindeverband(GemeindeverbandDaten),
20 Gemeinde(GemeindeDaten),
21}
22
23impl Datensatz {
24 pub fn gebietsstand(&self) -> &NaiveDate {
26 match self {
27 Self::Land(land) => &land.gebietsstand,
28 Self::Regierungsbezirk(regierungsbezirk) => ®ierungsbezirk.gebietsstand,
29 Self::Region(_region) => todo!(),
30 Self::Kreis(kreis) => &kreis.gebietsstand,
31 Self::Gemeindeverband(gemeindeverband) => &gemeindeverband.gebietsstand,
32 Self::Gemeinde(gemeinde) => &gemeinde.gebietsstand,
33 }
34 }
35
36 pub fn name(&self) -> &str {
38 match self {
39 Self::Land(land) => &land.name,
40 Self::Regierungsbezirk(regierungsbezirk) => ®ierungsbezirk.name,
41 Self::Region(_region) => todo!(),
42 Self::Kreis(kreis) => &kreis.name,
43 Self::Gemeindeverband(gemeindeverband) => &gemeindeverband.name,
44 Self::Gemeinde(gemeinde) => &gemeinde.name,
45 }
46 }
47}