Skip to main content

oximo_core/
lib.rs

1#![doc = include_str!("../README.md")]
2#![forbid(unsafe_code)]
3
4extern crate self as oximo_core;
5
6#[doc(hidden)]
7#[path = "macro_support.rs"]
8pub mod __macro_support;
9pub mod constraint;
10pub mod display;
11pub mod domain;
12pub mod error;
13pub mod indexed;
14pub mod indicator;
15pub mod model;
16pub mod objective;
17pub mod param;
18pub mod prelude;
19pub mod reformulation;
20pub mod set;
21pub mod soc;
22pub mod sos;
23pub mod sum;
24pub mod var;
25
26pub use constraint::{
27    Constraint, ConstraintExpr, ConstraintHandle, ConstraintId, IntoRhs, RangeConstraintHandles,
28    RangeConstraintIds, Relate, Sense,
29};
30pub use display::{
31    ConstraintDisplay, ExprDisplay, IndicatorDisplay, ObjectiveDisplay, SocDisplay, SosDisplay,
32};
33pub use domain::Domain;
34pub use error::{Error, Result};
35pub use indexed::{
36    IndexedConstraint, IndexedIndicatorConstraint, IndexedParam, IndexedRangeConstraint,
37    IndexedRangeIndicatorConstraint, IndexedVar,
38};
39pub use indicator::{
40    IndicatorConstraint, IndicatorConstraintHandle, IndicatorConstraintId,
41    RangeIndicatorConstraintHandles, RangeIndicatorConstraintIds,
42};
43pub use model::{
44    ConstraintRef, IndexedVarBuilder, Model, ModelConstraints, ModelKind, display_index_key,
45};
46pub use objective::{Objective, ObjectiveSense};
47pub use param::Parameter;
48pub use reformulation::{
49    IndicatorReformulationArtifacts, IndicatorReformulationOptions, ReformulatedModel,
50    ReformulationError, SosReformulationArtifacts, SosReformulationOptions,
51};
52pub use set::{
53    Axis, FromIndexKey, FromIndexKeyRef, IndexKey, IndexKeyRef, IndexTuple, KeyCat, ScalarKey, Set,
54    SetIter,
55};
56#[doc(hidden)]
57pub use soc::__detect_soc_from_quadratic;
58pub use soc::{SocConstraint, SocConstraintHandle, SocConstraintId, SocForm};
59pub use sos::{SosConstraint, SosConstraintHandle, SosConstraintId, SosMember, SosType};
60pub use sum::SumDomain;
61pub use var::{VarBuilder, Variable, var_name};
62
63// Re-export the expression handle so downstream code does not need a separate
64// `oximo-expr` import.
65pub use oximo_expr::{
66    Children, EvalError, Expr, ExprArena, ExprArenaCell, ExprArenaSnapshot, ExprArenaWriteGuard,
67    ExprId, ExprNode, ModelId, ModelMismatchError, ParamId, UnaryOp, VarId,
68    describe_nonlinear_term, dot, render_expr, render_linear_terms,
69};
70
71pub use oximo_macros::{
72    constraint, indicator_constraint, max, min, objective, param, set, soc_constraint,
73    sos_constraint, sum, variable,
74};