1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
mod reserved_word;
pub use reserved_word::ReservedWord;
mod list;
pub(crate) use list::RESERVED_WORDS;
/// Returns a `ReservedWord` for a given string slice.
///
/// Returns `None` if given word is not a reserved word in Ruby.
pub fn reserved_word(tok: &[u8]) -> Option<&'static ReservedWord> {
let bucket = RESERVED_WORDS.get(tok.len())?;
let idx = bucket
.binary_search_by(|e| e.name.as_bytes().cmp(tok))
.ok()?;
Some(&bucket[idx])
}