1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//! ## Overview
//!
//! This crate contains a very simple string table which can be used to *intern* strings by
//! stashing them all within a single data-structure, and then referencing them throughout other
//! areas of a code base using a unique `u64` identifier.
//!
//! Currently there is a single implementation of an interning data structure based on an internal
//! B-Tree index. Nothing very sophisticated going on here at all.
//!
//! ### Usage
//!
//! There really isn't much to it:
//!
//! ```rust
//!     use chisel_stringtable::btree_string_table::BTreeStringTable;
//!     use chisel_stringtable::common::StringTable;
//!
//!     let mut table = BTreeStringTable::new();
//!     let key : u64 = table.add("some value to intern");
//!     assert_eq!(table.get(key).unwrap(), "some value to intern");
//!     assert_eq!(format!("Here's me embedded string: {}", table.get(key).unwrap()),
//!                         "Here's me embedded string: some value to intern")
//! ```
pub mod btree_string_table;
pub mod common;