pub trait SolverService: Send + Sync {
// Required methods
fn solve(&self, request: &SolveRequest) -> SolverForgeResult<SolveResponse>;
fn solve_async(
&self,
request: &SolveRequest,
) -> SolverForgeResult<SolveHandle>;
fn get_status(&self, handle: &SolveHandle) -> SolverForgeResult<SolveStatus>;
fn get_best_solution(
&self,
handle: &SolveHandle,
) -> SolverForgeResult<Option<SolveResponse>>;
fn stop(&self, handle: &SolveHandle) -> SolverForgeResult<()>;
fn is_available(&self) -> bool;
}