Copyright (c) 2020 Ronnie Song
This is a Rust based "keyword index" library crate that maintaining an index of words from texts.
pub struct KWIndex<'a>(Vec<&'a str>);
extern crate kwindex; use kwindex::*;
let mut index = KWIndex::new();
index = index.extend_from_text("Hello world.");
assert_eq!(true, index.is_empty());
assert_eq!(2, index.len());
keyword
:
assert_eq!(1, index.count_matches("world"));
To run the example program, type the command below:
cargo run --example example
``
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running
target\debug\examples\example.exe`
is_empty(): true
[Hey] is add to KWIndex index [!] is removed from [world!] [world] is add to KWIndex index
isempty(): false len(): 2 countmatches('world'): 1
KWIndex { word: ["Hey", "world"] } ``` Everything went well! It parse the text and add to the list without issue, and successfully print its is_empty check, length, and the number of matches.
To test the library crate, type the command below:
cargo test
``` Compiling kwindex v0.1.0 (C:\Users\ronsong\Desktop\Docs\rust\kwindex) Finished test [unoptimized + debuginfo] target(s) in 0.96s Running target\debug\deps\test-8f8dfddd5ec24cfa.exe
running 6 tests test kwindextests::testisempty ... ok test kwindextests::testcountmatches ... ok test kwindextests::testcountmatches2 ... ok test kwindextests::testisnotempty ... ok test kwindextests::testlen ... ok test kwindextests::test_len2 ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out ```
All tests passed with no issues.
The tests are placed in tests/rand.rs file that uses std assert_eq!(), and assert_ne!() to test equality of the actual result and expected result of the new(), extend_to_text(), count_matches(), len() and is_empty() functions in that file.
Travis CI is running to do the automated testing.
This program is licensed under the "MIT License". Please
see the file LICENSE
in the source distribution of this
software for license terms.