pub trait SolverService: Send + Sync {
// Required methods
fn solve(
&self,
request: &SolveRequest,
) -> Result<SolveResponse, SolverForgeError>;
fn solve_async(
&self,
request: &SolveRequest,
) -> Result<SolveHandle, SolverForgeError>;
fn get_status(
&self,
handle: &SolveHandle,
) -> Result<SolveStatus, SolverForgeError>;
fn get_best_solution(
&self,
handle: &SolveHandle,
) -> Result<Option<SolveResponse>, SolverForgeError>;
fn stop(&self, handle: &SolveHandle) -> Result<(), SolverForgeError>;
fn is_available(&self) -> bool;
}Required Methods§
fn solve( &self, request: &SolveRequest, ) -> Result<SolveResponse, SolverForgeError>
fn solve_async( &self, request: &SolveRequest, ) -> Result<SolveHandle, SolverForgeError>
fn get_status( &self, handle: &SolveHandle, ) -> Result<SolveStatus, SolverForgeError>
fn get_best_solution( &self, handle: &SolveHandle, ) -> Result<Option<SolveResponse>, SolverForgeError>
fn stop(&self, handle: &SolveHandle) -> Result<(), SolverForgeError>
fn is_available(&self) -> bool
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".