Skip to content

Commit

Permalink
Optimize impl From<i8> for LitBool
Browse files Browse the repository at this point in the history
  • Loading branch information
hatoo committed Jan 20, 2021
1 parent 3cb99d3 commit 1ab5358
Showing 1 changed file with 260 additions and 5 deletions.
265 changes: 260 additions & 5 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,267 @@ pub mod solver {
Undef = 2,
}
impl From<i8> for LitBool {
#[inline]
fn from(x: i8) -> Self {
match x {
0 => LitBool::True,
1 => LitBool::False,
_ => LitBool::Undef,
}
const MAP: [LitBool; 256] = [
LitBool::True,
LitBool::False,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
LitBool::Undef,
];
*unsafe { MAP.get_unchecked(std::mem::transmute::<i8, u8>(x) as usize) }
}
}
impl<T> Index<Var> for Vec<T> {
Expand Down

0 comments on commit 1ab5358

Please sign in to comment.