Skip to main content

ecitygml_core/model/building/
building_unit.rs

1use crate::impl_abstract_building_subdivision_traits;
2use crate::model::building::{
3    AbstractBuildingSubdivision, AsAbstractBuildingSubdivision, AsAbstractBuildingSubdivisionMut,
4};
5
6#[derive(Debug, Clone, PartialEq)]
7pub struct BuildingUnit {
8    pub abstract_building_subdivision: AbstractBuildingSubdivision,
9}
10
11impl BuildingUnit {
12    pub fn new(abstract_building_subdivision: AbstractBuildingSubdivision) -> Self {
13        Self {
14            abstract_building_subdivision,
15        }
16    }
17}
18
19impl AsAbstractBuildingSubdivision for BuildingUnit {
20    fn abstract_building_subdivision(&self) -> &AbstractBuildingSubdivision {
21        &self.abstract_building_subdivision
22    }
23}
24
25impl AsAbstractBuildingSubdivisionMut for BuildingUnit {
26    fn abstract_building_subdivision_mut(&mut self) -> &mut AbstractBuildingSubdivision {
27        &mut self.abstract_building_subdivision
28    }
29}
30
31impl_abstract_building_subdivision_traits!(BuildingUnit);