1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#![cfg_attr(feature = "unstable", feature(test))]
#[cfg(feature = "unstable")]
extern crate test as etest;
use std::error::Error;
mod ops;
mod transaction;
mod vars;
mod version;
pub mod auxtx;
pub use vars::TVar;
pub use ops::{
abort, atomically, atomically_aux, atomically_or_err, atomically_or_err_aux, guard, or, retry,
};
#[cfg(feature = "queues")]
pub mod queues;
pub enum StmError {
Failure,
Retry,
}
pub enum StmDynError {
Control(StmError),
Abort(Box<dyn Error + Send + Sync>),
}
impl From<StmError> for StmDynError {
fn from(e: StmError) -> Self {
StmDynError::Control(e)
}
}
pub type StmResult<T> = Result<T, StmError>;
pub type StmDynResult<T> = Result<T, StmDynError>;
#[cfg(test)]
mod test;