bisection_key

Crates.iobisection_key
lib.rsbisection_key
version0.0.1
sourcesrc
created_at2021-12-16 04:37:28.991754
updated_at2021-12-16 04:37:28.991754
descriptionlexiographic fractional index key algorithm
homepagehttps://github.com/Cumulo/bisection-key.rs/
repositoryhttps://github.com/Cumulo/bisection-key.rs/
max_upload_size
id499017
size30,001
题叶 (tiye)

documentation

https://docs.rs/crate/bisection_key/

README

Bisection Key

insert between two different keys infinitely.

Charset:

+-/0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

numeral repersentation: 0 ~ 64, middle size is 32, corresponding to T.

Usage

LexiconKey is in lexicographic order:

use bisection_key::{LexiconKey}

let k0 = LexiconKey::default(); // defaults to "T"
k0.bisect_beginning()
k0.bisect_end()
let k1 = LexiconKey::new("a").unwrap();
b0.bisect(&k1)

BalancedKey is a different attempt, like said, it's balanced around T like "balanced ternary" and has its own implementation of Ord trait:

use bisection_key::{BalancedKey}

let k0 = LexiconKey::default(); // defaults to "T"
k0.bisect_beginning()
k0.bisect_end()
let k1 = LexiconKey::new("a").unwrap();
b0.bisect(&k1)

License

MIT

Commit count: 15

cargo fmt