This is a tiny helper crate providing a simple heursitic for implementing smart quotes.
While this crate does not convert any glyphs, it gives a heuristic based on the previous character, wheter the next character would be an opening or closing quotation mark.
Example usage: ```rust use smartquotes::{decidequote_after, Decision};
asserteq!(decidequote_after(None), Decision::Open);
asserteq!(decidequoteafter(Some(' ')), Decision::Open); asserteq!(decidequoteafter(Some('\t')), Decision::Open); asserteq!(decidequoteafter(Some('\n')), Decision::Open); asserteq!(decidequoteafter(Some('\x0A')), Decision::Open); asserteq!(decidequoteafter(Some('\u{1680}')), Decision::Open); asserteq!(decidequoteafter(Some('\u{2005}')), Decision::Open); asserteq!(decidequoteafter(Some('\u{202F}')), Decision::Open); asserteq!(decidequoteafter(Some('\u{2029}')), Decision::Open);
asserteq!(decidequoteafter(Some('(')), Decision::Open); asserteq!(decidequoteafter(Some('[')), Decision::Open); asserteq!(decidequoteafter(Some('{')), Decision::Open); asserteq!(decidequoteafter(Some('⟨')), Decision::Open);
asserteq!(decidequoteafter(Some('\u{2012}')), Decision::Open); asserteq!(decidequoteafter(Some('\u{2015}')), Decision::Open);
asserteq!(decidequoteafter(Some('x')), Decision::Close); asserteq!(decidequoteafter(Some('“')), Decision::Close); asserteq!(decidequoteafter(Some('‘')), Decision::Close); asserteq!(decidequoteafter(Some('.')), Decision::Close); asserteq!(decidequote_after(Some(':')), Decision::Close); ```
License: MIT OR Apache-2.0