hyperscan 0.1.5

Hyperscan bindings for Rust with Multiple Pattern and Streaming Scan
docs.rs failed to build hyperscan-0.1.5
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: hyperscan-0.3.2

rust-hyperscan travis crate docs

Hyperscan is a high-performance regular expression matching library.

Usage

To use, add the following line to Cargo.toml under [dependencies]:

hyperscan = "0.1"

or alternatively,

hyperscan = { git = "https://github.com/flier/rust-hyperscan.git" }

Example

#[macro_use]
extern crate hyperscan;

use hyperscan::*;

fn callback(id: u32, from: u64, to: u64, flags: u32, _: &BlockDatabase) -> u32 {
    assert_eq!(id, 0);
    assert_eq!(from, 5);
    assert_eq!(to, 9);
    assert_eq!(flags, 0);

    println!("found pattern #{} @ [{}, {})", id, from, to);

    0
}

fn main() {
    let pattern = &pattern!{"test", flags => HS_FLAG_CASELESS|HS_FLAG_SOM_LEFTMOST};
    let db: BlockDatabase = pattern.build().unwrap();
    let scratch = db.alloc().unwrap();

    db.scan::<BlockDatabase>("some test data", 0, &scratch, Some(callback), Some(&db)).unwrap();
}