Skip to main content

SpaceService

Trait SpaceService 

Source
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§

Source

fn measure_duplicates( &self, space: &ObjectId, ) -> Result<Vec<ObjectId>, SpaceError>

Spaces whose body coincides with space.

Source

fn measure_clear_height( &self, space: &ObjectId, ) -> Result<ClearHeightEvidence, SpaceError>

The clear height of space.

Source

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.

Source

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.

Source

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.

Source

fn measure_unallocated_regions( &self, ) -> Result<Vec<UnallocatedRegion>, SpaceError>

Floor area belonging to no space, one entry per connected region of each storey.

Source

fn measure_support_counts(&self) -> Result<SupportCounts, SpaceError>

Counts of the elements that can form horizontal caps.

Source

fn evidence(&self) -> Evidence

Evidence backing this service’s measurements.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§