pub trait FreeSpaceService:
Send
+ Sync
+ 'static {
// Required methods
fn assess_clearance(
&self,
request: &ClearanceRequest,
) -> Result<ClearanceOutcome, FreeSpaceError>;
fn find_placement(
&self,
request: &PlacementRequest,
) -> Result<PlacementOutcome, FreeSpaceError>;
fn measure_free_area(
&self,
request: &FreeAreaRequest,
) -> Result<FreeAreaEvidence, FreeSpaceError>;
}