#[repr(C)]pub struct AmplExports {Show 58 fields
pub std_err: *mut c_void,
pub addfunc: Option<unsafe extern "C" fn(*const i8, unsafe extern "C" fn(*mut Arglist) -> f64, i32, i32, *mut c_void, *mut AmplExports)>,
pub asl_date: i64,
pub fprintf: *mut c_void,
pub printf: *mut c_void,
pub sprintf: *mut c_void,
pub vfprintf: *mut c_void,
pub vsprintf: *mut c_void,
pub strtod: *mut c_void,
pub crypto: *mut c_void,
pub asl: *mut i8,
pub at_exit: *mut c_void,
pub at_reset: Option<unsafe extern "C" fn(*mut AmplExports, *mut c_void, *mut c_void)>,
pub tempmem: *mut c_void,
pub add_table_handler: *mut c_void,
pub private_ae: *mut i8,
pub qsortv: *mut c_void,
pub std_in: *mut c_void,
pub std_out: *mut c_void,
pub clearerr: *mut c_void,
pub fclose: *mut c_void,
pub fdopen: *mut c_void,
pub feof: *mut c_void,
pub ferror: *mut c_void,
pub fflush: *mut c_void,
pub fgetc: *mut c_void,
pub fgets: *mut c_void,
pub fileno: *mut c_void,
pub fopen: *mut c_void,
pub fputc: *mut c_void,
pub fputs: *mut c_void,
pub fread: *mut c_void,
pub freopen: *mut c_void,
pub fscanf: *mut c_void,
pub fseek: *mut c_void,
pub ftell: *mut c_void,
pub fwrite: *mut c_void,
pub pclose: *mut c_void,
pub perror: *mut c_void,
pub popen: *mut c_void,
pub puts: *mut c_void,
pub rewind: *mut c_void,
pub scanf: *mut c_void,
pub setbuf: *mut c_void,
pub setvbuf: *mut c_void,
pub sscanf: *mut c_void,
pub tempnam: *mut c_void,
pub tmpfile: *mut c_void,
pub tmpnam: *mut c_void,
pub ungetc: *mut c_void,
pub ai: *mut c_void,
pub getenv: *mut c_void,
pub breakfunc: *mut c_void,
pub breakarg: *mut i8,
pub snprintf: *mut c_void,
pub vsnprintf: *mut c_void,
pub addrand: *mut c_void,
pub addrandinit: Option<unsafe extern "C" fn(*mut AmplExports, unsafe extern "C" fn(*mut c_void, u64), *mut c_void)>,
}Expand description
The AmplExports struct from AMPL’s funcadd.h. Layout must match
exactly. Function pointers we don’t implement are held as *mut c_void
(null) — AMPL’s ABI does not require a caller to populate them unless the
loaded library actually invokes them.
Fields§
§std_err: *mut c_void§addfunc: Option<unsafe extern "C" fn(*const i8, unsafe extern "C" fn(*mut Arglist) -> f64, i32, i32, *mut c_void, *mut AmplExports)>§asl_date: i64§fprintf: *mut c_void§printf: *mut c_void§sprintf: *mut c_void§vfprintf: *mut c_void§vsprintf: *mut c_void§strtod: *mut c_void§crypto: *mut c_void§asl: *mut i8§at_exit: *mut c_void§at_reset: Option<unsafe extern "C" fn(*mut AmplExports, *mut c_void, *mut c_void)>§tempmem: *mut c_void§add_table_handler: *mut c_void§private_ae: *mut i8§qsortv: *mut c_void§std_in: *mut c_void§std_out: *mut c_void§clearerr: *mut c_void§fclose: *mut c_void§fdopen: *mut c_void§feof: *mut c_void§ferror: *mut c_void§fflush: *mut c_void§fgetc: *mut c_void§fgets: *mut c_void§fileno: *mut c_void§fopen: *mut c_void§fputc: *mut c_void§fputs: *mut c_void§fread: *mut c_void§freopen: *mut c_void§fscanf: *mut c_void§fseek: *mut c_void§ftell: *mut c_void§fwrite: *mut c_void§pclose: *mut c_void§perror: *mut c_void§popen: *mut c_void§puts: *mut c_void§rewind: *mut c_void§scanf: *mut c_void§setbuf: *mut c_void§setvbuf: *mut c_void§sscanf: *mut c_void§tempnam: *mut c_void§tmpfile: *mut c_void§tmpnam: *mut c_void§ungetc: *mut c_void§ai: *mut c_void§getenv: *mut c_void§breakfunc: *mut c_void§breakarg: *mut i8§snprintf: *mut c_void§vsnprintf: *mut c_void§addrand: *mut c_void§addrandinit: Option<unsafe extern "C" fn(*mut AmplExports, unsafe extern "C" fn(*mut c_void, u64), *mut c_void)>Trait Implementations§
impl Send for AmplExports
impl Sync for AmplExports
Auto Trait Implementations§
impl Freeze for AmplExports
impl RefUnwindSafe for AmplExports
impl Unpin for AmplExports
impl UnsafeUnpin for AmplExports
impl UnwindSafe for AmplExports
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more