fiftyonedegrees 0.2.10

A wrapper around the 51Degrees device detection C library.
Documentation
# Usage

```rust
use fiftyonedegrees::properties::PropertyName;
use fiftyonedegrees::api::DeviceDetection;

fn main() {
    let properties = vec![PropertyName::IsMobile];

    let engine = DeviceDetection::new("path/to/file.hash", properties);

    let result = engine.lookup("my user agent");
    
    let boolean = result.getValueAsBoolean(&PropertyName::IsMobile).unwrap().unwrap();
    let string = result.getValueAsString(&PropertyName::BrowserName).unwrap().unwrap();
}
```

# Development

**Install Result**

https://www.rust-lang.org/tools/install

**Install bindgen**

`cargo install bindgen`

**Download c code**

`git submodule update --init --recursive`

# Updating to latest device-detection-cxx

**Point git submodule to target tag**

`cd device-detection-cxx`

`git checkout 4.2.3`

**Regenerate c bindings for rust**

`bindgen src/shim/wrapper.h -o src/shim/mod.rs`

**Run tests**

`cargo test`

# Performance Benchmarking

`cargo run --example benchmark --release`