use crate::ffi;
#[derive(Debug, Eq, PartialEq, Clone, Copy)]
pub enum Numericsuffix {
Value,
Defeqn,
Dual,
Init,
Init0,
Lb,
Ub,
Lb0,
Ub0,
Lb1,
Ub1,
Lb2,
Ub2,
Lrc,
Urc,
Lslack,
Uslack,
Rc,
Slack,
Body,
Defvar,
Dinit,
Dinit0,
Lbs,
Ubs,
Ldual,
Udual,
Val, Exitcode,
Unknown(ffi::AMPL_NUMERICSUFFIX),
}
#[derive(Debug, Eq, PartialEq, Clone, Copy)]
pub enum Stringsuffix {
Astatus,
Sstatus,
Status,
Message,
Result,
Sense,
Unknown(ffi::AMPL_STRINGSUFFIX),
}
impl From<Numericsuffix> for ffi::AMPL_NUMERICSUFFIX {
fn from(value: Numericsuffix) -> Self {
match value {
Numericsuffix::Value => ffi::AMPL_NUMERICSUFFIX_AMPL_VALUE,
Numericsuffix::Defeqn => ffi::AMPL_NUMERICSUFFIX_AMPL_DEFEQN,
Numericsuffix::Dual => ffi::AMPL_NUMERICSUFFIX_AMPL_DUAL,
Numericsuffix::Init => ffi::AMPL_NUMERICSUFFIX_AMPL_INIT,
Numericsuffix::Init0 => ffi::AMPL_NUMERICSUFFIX_AMPL_INIT0,
Numericsuffix::Lb => ffi::AMPL_NUMERICSUFFIX_AMPL_LB,
Numericsuffix::Ub => ffi::AMPL_NUMERICSUFFIX_AMPL_UB,
Numericsuffix::Lb0 => ffi::AMPL_NUMERICSUFFIX_AMPL_LB0,
Numericsuffix::Ub0 => ffi::AMPL_NUMERICSUFFIX_AMPL_UB0,
Numericsuffix::Lb1 => ffi::AMPL_NUMERICSUFFIX_AMPL_LB1,
Numericsuffix::Ub1 => ffi::AMPL_NUMERICSUFFIX_AMPL_UB1,
Numericsuffix::Lb2 => ffi::AMPL_NUMERICSUFFIX_AMPL_LB2,
Numericsuffix::Ub2 => ffi::AMPL_NUMERICSUFFIX_AMPL_UB2,
Numericsuffix::Lrc => ffi::AMPL_NUMERICSUFFIX_AMPL_LRC,
Numericsuffix::Urc => ffi::AMPL_NUMERICSUFFIX_AMPL_URC,
Numericsuffix::Lslack => ffi::AMPL_NUMERICSUFFIX_AMPL_LSLACK,
Numericsuffix::Uslack => ffi::AMPL_NUMERICSUFFIX_AMPL_USLACK,
Numericsuffix::Rc => ffi::AMPL_NUMERICSUFFIX_AMPL_RC,
Numericsuffix::Slack => ffi::AMPL_NUMERICSUFFIX_AMPL_SLACK,
Numericsuffix::Body => ffi::AMPL_NUMERICSUFFIX_AMPL_BODY,
Numericsuffix::Defvar => ffi::AMPL_NUMERICSUFFIX_AMPL_DEFVAR,
Numericsuffix::Dinit => ffi::AMPL_NUMERICSUFFIX_AMPL_DINIT,
Numericsuffix::Dinit0 => ffi::AMPL_NUMERICSUFFIX_AMPL_DINIT0,
Numericsuffix::Lbs => ffi::AMPL_NUMERICSUFFIX_AMPL_LBS,
Numericsuffix::Ubs => ffi::AMPL_NUMERICSUFFIX_AMPL_UBS,
Numericsuffix::Ldual => ffi::AMPL_NUMERICSUFFIX_AMPL_LDUAL,
Numericsuffix::Udual => ffi::AMPL_NUMERICSUFFIX_AMPL_UDUAL,
Numericsuffix::Val => ffi::AMPL_NUMERICSUFFIX_AMPL_VAL, Numericsuffix::Exitcode => ffi::AMPL_NUMERICSUFFIX_AMPL_EXITCODE,
Numericsuffix::Unknown(val) => val,
}
}
}
impl From<Stringsuffix> for ffi::AMPL_STRINGSUFFIX {
fn from(value: Stringsuffix) -> Self {
match value {
Stringsuffix::Astatus => ffi::AMPL_STRINGSUFFIX_AMPL_ASTATUS,
Stringsuffix::Sstatus => ffi::AMPL_STRINGSUFFIX_AMPL_SSTATUS,
Stringsuffix::Status => ffi::AMPL_STRINGSUFFIX_AMPL_STATUS,
Stringsuffix::Message => ffi::AMPL_STRINGSUFFIX_AMPL_MESSAGE,
Stringsuffix::Result => ffi::AMPL_STRINGSUFFIX_AMPL_RESULT,
Stringsuffix::Sense => ffi::AMPL_STRINGSUFFIX_AMPL_SENSE,
Stringsuffix::Unknown(val) => val,
}
}
}