ointer 2.0.0

Use the first bit of pointer data to store an extra boolean value
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Ointer

Using the first bit, called `orientation bit`, of pointer data to store an extra boolean value, this crate wraps `Box/Rc(Weak)/Arc(Weak)`. An `ointer` can be used to represent geometric object together with its orientation. As an example, see code below: 
```rust, no_run
    // Construct a triangle
    let mut triangle = OArc::new(my_trangle_params...);
    // Clone and flip this triangle
    let triangle_flipped = triangle.clone_and_flip();
    // Here we got one triangle with its two references that have opposite normal directions
    assert_eq!(triangle.o(), !triangle_flipped.o());
    assert_eq!(*triangle, *triangle_flipped);
    triangle.flip();
    assert_eq!(triangle.o(), triangle_flipped.o());
```