atomize 0.1.3

Elixir style atoms / symbols
Documentation
# Atomize

Elixir style atoms for Rust

From Elixir:
An atom is a constant whose value is its own name.
Some other languages call these symbols.
They are often useful to enumerate over distinct values.

## Creating an Atom

```rust
use atomize::{a, Atom};

fn main() {
    // `a!(apple)` will always create the same value
    let apple: Atom = a!(apple);

    assert_eq!(apple, a!(apple));
}
```

## Atom Equality

Atoms are compared in O(1) time.
In fact, they compile to simple u64 and so
are compared in a single x64 operation

```rust
assert_eq!(a!(orange), a!(orange));
assert_ne!(a!(orange), a!(apple));
```

## Mixing

Atoms can also be mixed

```rust
let apple_and_orange = a!(apple) + a!(orange);

assert_eq!(apple_and_orange, a!(orange) + a!(apple));
```