diff --git a/src/lib.rs b/src/lib.rs index a93f644..6ee35c0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,7 +25,7 @@ pub(crate) mod utils; /// ```rust /// let expression = asciimath_rs::parse("sin(2x) + 3".to_string()); /// ``` -pub fn parse(content: String) -> Expression { +pub fn parse>(content: S) -> Expression { let mut tokenizer = Tokenizer::new(content); let tokens = tokenizer.parse(); let mut tree_parser = TreeParser::new(tokens); diff --git a/src/parsing/tokenizer.rs b/src/parsing/tokenizer.rs index 0cfa27c..3591439 100644 --- a/src/parsing/tokenizer.rs +++ b/src/parsing/tokenizer.rs @@ -19,8 +19,8 @@ pub struct Tokenizer { } impl Tokenizer { - pub fn new(text: String) -> Self { - let mut chars = text.chars().collect::>(); + pub fn new>(text: S) -> Self { + let mut chars = text.as_ref().chars().collect::>(); chars.push('\n'); Self { ctm: CharTapeMachine::new(chars),