pub trait SpaceService:
Send
+ Sync
+ 'static {
// Required methods
fn measure_duplicates(
&self,
space: &ObjectId,
) -> Result<Vec<ObjectId>, SpaceError>;
fn measure_clear_height(
&self,
space: &ObjectId,
) -> Result<ClearHeightEvidence, SpaceError>;
fn measure_boundary_gaps(
&self,
space: &ObjectId,
) -> Result<Vec<BoundaryGap>, SpaceError>;
fn measure_overlaps(
&self,
space: &ObjectId,
) -> Result<Vec<SpaceOverlap>, SpaceError>;
fn measure_cap_coverage(
&self,
space: &ObjectId,
cap: Cap,
) -> Result<CapCoverage, SpaceError>;
fn measure_storey_residuals(
&self,
) -> Result<Vec<StoreyResidual>, SpaceError>;
fn measure_support_counts(&self) -> Result<SupportCounts, SpaceError>;
fn evidence(&self) -> Evidence;
}Expand description
Measures the geometry a space-validation policy reasons about.
ADR 0004: every method returns a measurement. None returns a finding, and each aspect fails independently.
Required Methods§
Sourcefn measure_duplicates(
&self,
space: &ObjectId,
) -> Result<Vec<ObjectId>, SpaceError>
fn measure_duplicates( &self, space: &ObjectId, ) -> Result<Vec<ObjectId>, SpaceError>
Spaces whose body coincides with space.
Sourcefn measure_clear_height(
&self,
space: &ObjectId,
) -> Result<ClearHeightEvidence, SpaceError>
fn measure_clear_height( &self, space: &ObjectId, ) -> Result<ClearHeightEvidence, SpaceError>
The clear height of space.
Sourcefn measure_boundary_gaps(
&self,
space: &ObjectId,
) -> Result<Vec<BoundaryGap>, SpaceError>
fn measure_boundary_gaps( &self, space: &ObjectId, ) -> Result<Vec<BoundaryGap>, SpaceError>
Uncovered runs of the space boundary.
Sourcefn measure_overlaps(
&self,
space: &ObjectId,
) -> Result<Vec<SpaceOverlap>, SpaceError>
fn measure_overlaps( &self, space: &ObjectId, ) -> Result<Vec<SpaceOverlap>, SpaceError>
Bodies overlapping space.
Sourcefn measure_cap_coverage(
&self,
space: &ObjectId,
cap: Cap,
) -> Result<CapCoverage, SpaceError>
fn measure_cap_coverage( &self, space: &ObjectId, cap: Cap, ) -> Result<CapCoverage, SpaceError>
Coverage of one horizontal cap of space.
Sourcefn measure_storey_residuals(&self) -> Result<Vec<StoreyResidual>, SpaceError>
fn measure_storey_residuals(&self) -> Result<Vec<StoreyResidual>, SpaceError>
Floor area belonging to no space, per storey.
Sourcefn measure_support_counts(&self) -> Result<SupportCounts, SpaceError>
fn measure_support_counts(&self) -> Result<SupportCounts, SpaceError>
Counts of the elements that can form horizontal caps.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".