Skip to main content

oximo/
lib.rs

1#![doc = include_str!("../README.md")]
2#![forbid(unsafe_code)]
3
4pub use oximo_core as core;
5pub use oximo_expr as expr;
6pub use oximo_solver as solver;
7
8#[cfg(feature = "io")]
9pub use oximo_io as io;
10
11#[cfg(feature = "highs")]
12pub use oximo_highs::{HighsMethod, HighsOptions, HighsPresolve};
13
14#[cfg(feature = "gurobi")]
15pub use oximo_gurobi::{GurobiOptions, GurobiPresolve};
16
17#[cfg(feature = "gams")]
18pub use oximo_gams::{GamsOptions, GamsSolver};
19
20#[cfg(feature = "baron")]
21pub use oximo_baron::BaronOptions;
22
23/// GAMS backend types: sub-solver selection and per-solver option structs.
24#[cfg(feature = "gams")]
25pub mod gams {
26    pub use oximo_gams::{
27        GamsBaronOptions, GamsCbcCuts, GamsCbcOptions, GamsCbcPresolve, GamsCplexMipEmphasis,
28        GamsCplexOptions, GamsGurobiMipFocus, GamsGurobiOptions, GamsHighsOptions,
29        GamsHighsPresolve, GamsHighsSolver, GamsIpoptLinearSolver, GamsIpoptMuStrategy,
30        GamsIpoptOptions, GamsKnitroAlgorithm, GamsKnitroOptions, GamsMosekOptions, GamsOptions,
31        GamsScipOptions, GamsSolver, GamsSolverConfig, GamsXpressOptions,
32    };
33}
34
35pub mod prelude {
36    //! Glob-import target. Brings the modeling and solver surface into scope.
37    pub use oximo_core::prelude::*;
38    pub use oximo_solver::{
39        HasUniversal, Solver, SolverError, SolverResult, SolverStatus, UniversalOptions,
40        UniversalOptionsExt,
41    };
42
43    #[cfg(feature = "highs")]
44    pub use oximo_highs::{HighsMethod, HighsOptions, HighsPresolve};
45
46    #[cfg(feature = "gurobi")]
47    pub use oximo_gurobi::{GurobiOptions, GurobiPresolve};
48
49    #[cfg(feature = "gams")]
50    pub use oximo_gams::{GamsOptions, GamsSolver};
51
52    #[cfg(feature = "baron")]
53    pub use oximo_baron::BaronOptions;
54}
55
56pub mod solvers {
57    //! Concrete solver backends, gated by cargo features.
58
59    #[cfg(feature = "highs")]
60    pub use oximo_highs::Highs;
61
62    #[cfg(feature = "gurobi")]
63    pub use oximo_gurobi::Gurobi;
64
65    #[cfg(feature = "gams")]
66    pub use oximo_gams::Gams;
67
68    #[cfg(feature = "baron")]
69    pub use oximo_baron::Baron;
70}