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,
request: &BoundaryRequest,
) -> Result<Vec<BoundaryGap>, SpaceError>;
fn measure_overlaps(
&self,
space: &ObjectId,
request: &OverlapRequest,
) -> Result<Vec<SpaceOverlap>, SpaceError>;
fn measure_cap_coverage(
&self,
space: &ObjectId,
request: &CapRequest,
) -> Result<CapCoverage, SpaceError>;
fn measure_unallocated_regions(
&self,
) -> Result<Vec<UnallocatedRegion>, 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,
request: &BoundaryRequest,
) -> Result<Vec<BoundaryGap>, SpaceError>
fn measure_boundary_gaps( &self, space: &ObjectId, request: &BoundaryRequest, ) -> Result<Vec<BoundaryGap>, SpaceError>
Uncovered runs of the space boundary, covered only by the elements
request names or, when it names none, by any body but a space.
Sourcefn measure_overlaps(
&self,
space: &ObjectId,
request: &OverlapRequest,
) -> Result<Vec<SpaceOverlap>, SpaceError>
fn measure_overlaps( &self, space: &ObjectId, request: &OverlapRequest, ) -> Result<Vec<SpaceOverlap>, SpaceError>
Bodies overlapping space: the elements request names or, when it
names none, every other body.
Sourcefn measure_cap_coverage(
&self,
space: &ObjectId,
request: &CapRequest,
) -> Result<CapCoverage, SpaceError>
fn measure_cap_coverage( &self, space: &ObjectId, request: &CapRequest, ) -> Result<CapCoverage, SpaceError>
Coverage of one horizontal cap of space, by the elements request
names or, when it names none, by the host-declared cap elements.
Sourcefn measure_unallocated_regions(
&self,
) -> Result<Vec<UnallocatedRegion>, SpaceError>
fn measure_unallocated_regions( &self, ) -> Result<Vec<UnallocatedRegion>, SpaceError>
Floor area belonging to no space, one entry per connected region of each 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".