# dewey
`dewey` is a simple version parser and comperator that aims to be compatible
to [NetBSD](http://netbsd.org) and [xbps](https://github.com/voidlinux/xbps)'
comperator implementation.
`dewey` not only parses `.`-seperated versions but other common patterns such
as `X.XalphaX`, `X.XrcX`, and `X.X.Xpl1`
## example
```rust
use dewey::VersionCmp;
let stable = "1.0".version();
let pre = "1.0pre1".version();
let pl = "1.0pl1".version();
assert!(stable > pre);
assert!(pl > stable);
assert!(pl > pre);
```
## supported seperators
* Revision: example: `1.0_1`
* Alpha: `0.0alpha1`
* Beta: `0.0beta1`
* Pre: `0.0pre1`
* Rc: `0.0rc1`
* PatchLevel: `0.0pl1`
* Dot: `1.0`
## version coverage
`dewey` tries its very best to produce a relationship between two version.
It even can work with rather obscure utf8 versioning:
```rust
use dewey::VersionCmp;
let smile = "1.😃".version();
let sad = "1.😢".version();
assert!(smile < sad);
```
It only fails if there are there are conflicting version schemes:
```rust
use dewey::VersionCmp;
let alpha_suffix = "1c".version();
let number_suffix = "1.0".version();
assert!(alpha_suffix.partial_cmp(&number_suffix) == None);
```