pub(crate) struct Z3Subprocess {
child: Child,
stdin: Option<ChildStdin>,
stdout: BufReader<ChildStdout>,
stderr: Arc<Mutex<Vec<u8>>>,
stderr_reader: Option<JoinHandle<()>>,
request_id: usize,
}Fields§
§child: Child§stdin: Option<ChildStdin>§stdout: BufReader<ChildStdout>§stderr: Arc<Mutex<Vec<u8>>>§stderr_reader: Option<JoinHandle<()>>§request_id: usizeImplementations§
Source§impl Z3Subprocess
impl Z3Subprocess
pub(crate) fn new() -> Result<Self>
fn request(&mut self, commands: &str) -> Result<Response>
fn execute(&mut self, commands: &str) -> Result<()>
Sourcepub(crate) fn check_sat(&mut self, setup: &str) -> Result<SatStatus, Z3Error>
pub(crate) fn check_sat(&mut self, setup: &str) -> Result<SatStatus, Z3Error>
Check satisfiability (setup is a string that is sent to Z3 to be done before the check)
Sourcepub(crate) fn apply(
&mut self,
setup: &str,
tactic: &str,
) -> Result<Vec<Vec<Sexp>>, Z3Error>
pub(crate) fn apply( &mut self, setup: &str, tactic: &str, ) -> Result<Vec<Vec<Sexp>>, Z3Error>
Apply a tactic (as a string) under a context (setup), returning the parsed formulas in each resulting goal.
pub(crate) fn scoped<R, E>( &mut self, setup: &str, f: impl FnOnce(&mut Self) -> Result<R, E>, ) -> Result<R, E>
pub(crate) fn reset(&mut self, declarations: &str) -> Result<()>
fn take_stderr(&self) -> String
Trait Implementations§
Source§impl Drop for Z3Subprocess
impl Drop for Z3Subprocess
Auto Trait Implementations§
impl !DynSend for Z3Subprocess
impl !DynSync for Z3Subprocess
impl !RefUnwindSafe for Z3Subprocess
impl !UnwindSafe for Z3Subprocess
impl Freeze for Z3Subprocess
impl Send for Z3Subprocess
impl Sync for Z3Subprocess
impl Unpin for Z3Subprocess
impl UnsafeUnpin for Z3Subprocess
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
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