Lexeme: Add 'third' field, implement Default, simplify some methods

This commit is contained in:
Juno Takano 2026-01-07 10:55:04 -03:00
commit b60151556e
12 changed files with 97 additions and 70 deletions

View file

@ -124,7 +124,7 @@ mod tests {
expected = "Attempt to lex an anchor directly from a lexeme"
)]
fn lex() {
Anchor::lex(&Lexeme::new("", ""));
Anchor::lex(&Lexeme::default());
}
#[test]

View file

@ -56,6 +56,6 @@ mod tests {
expected = "Attempt to lex a bold tag directly from a lexeme"
)]
fn lex() {
Bold::lex(&Lexeme::new("", ""));
Bold::lex(&Lexeme::default());
}
}

View file

@ -56,6 +56,6 @@ mod tests {
expected = "Attempt to lex a code tag directly from a lexeme"
)]
fn lex() {
Code::lex(&Lexeme::new("", ""));
Code::lex(&Lexeme::default());
}
}

View file

@ -196,7 +196,7 @@ mod tests {
let mut map: HashMap<String, Vec<String>> = HashMap::default();
let id = Header::make_id(
&Config::default(),
&Lexeme::new("##", "Title"),
&Lexeme::new("##", "Title", ""),
&mut map,
);
assert_eq!(id, "Title");
@ -209,7 +209,7 @@ mod tests {
let id = Header::make_id(
&config,
&Lexeme::new("##", "駄目!"),
&Lexeme::new("##", "駄目!", ""),
&mut HashMap::default(),
);
assert_eq!(id, "h");
@ -222,7 +222,7 @@ mod tests {
let id = Header::make_id(
&config,
&Lexeme::new("##", "駄目!"),
&Lexeme::new("##", "駄目!", ""),
&mut HashMap::default(),
);
assert_eq!(id, "駄目!");
@ -233,15 +233,15 @@ mod tests {
let mut map: HashMap<String, Vec<String>> = HashMap::default();
let config = Config::default();
let id =
Header::make_id(&config, &Lexeme::new("##", "UVrcCUjoQ"), &mut map);
Header::make_id(&config, &Lexeme::new("##", "UVrcCUjoQ", ""), &mut map);
assert_eq!(id, "UVrcCUjoQ");
let double =
Header::make_id(&config, &Lexeme::new("##", "UVrcCUjoQ"), &mut map);
Header::make_id(&config, &Lexeme::new("##", "UVrcCUjoQ", ""), &mut map);
assert_eq!(double, "UVrcCUjoQ-1");
let double2 =
Header::make_id(&config, &Lexeme::new("##", "UVrcCUjoQ"), &mut map);
Header::make_id(&config, &Lexeme::new("##", "UVrcCUjoQ", ""), &mut map);
assert_eq!(double2, "UVrcCUjoQ-2");
}

View file

@ -56,6 +56,6 @@ mod tests {
expected = "Attempt to lex an oblique tag directly from a lexeme"
)]
fn lex() {
Oblique::lex(&Lexeme::new("", ""));
Oblique::lex(&Lexeme::default());
}
}

View file

@ -62,7 +62,7 @@ mod tests {
#[test]
fn lex() {
let p = Paragraph::lex(&Lexeme::new("", ""));
let p = Paragraph::lex(&Lexeme::default());
assert!(p.open.is_none());
}
@ -71,7 +71,7 @@ mod tests {
expected = "Attempt to render a paragraph tag while open state is unknown"
)]
fn render_state_unknown() {
let p = Paragraph::lex(&Lexeme::new("", ""));
let p = Paragraph::lex(&Lexeme::default());
drop(p.render());
}
}

View file

@ -54,10 +54,10 @@ mod tests {
#[test]
fn lex() {
let from_empty_lexeme = PreFormat::lex(&Lexeme::new("", ""));
let from_empty_lexeme = PreFormat::lex(&Lexeme::default());
assert!(from_empty_lexeme.open.is_none());
let from_non_empty_lexeme = PreFormat::lex(&Lexeme::new("`", "`"));
let from_non_empty_lexeme = PreFormat::lex(&Lexeme::default());
assert!(from_non_empty_lexeme.open.is_none());
}
@ -66,10 +66,10 @@ mod tests {
expected = "Attempt to render a preformat tag while open state is unknown"
)]
fn render() {
let from_empty_lexeme = PreFormat::lex(&Lexeme::new("", ""));
let from_empty_lexeme = PreFormat::lex(&Lexeme::default());
from_empty_lexeme.render();
let from_non_empty_lexeme = PreFormat::lex(&Lexeme::new("`", "`"));
let from_non_empty_lexeme = PreFormat::lex(&Lexeme::default());
from_non_empty_lexeme.render();
}
}

View file

@ -56,18 +56,12 @@ mod tests {
#[test]
fn probe() {
assert!(!Span::probe(&Lexeme::new(
&crate::ONSET.elapsed().as_nanos().to_string(),
"",
)));
assert!(!Span::probe(&Lexeme::default()));
}
#[test]
fn lex() {
let span = Span::lex(&Lexeme::new(
&crate::ONSET.elapsed().as_nanos().to_string(),
"",
));
let span = Span::lex(&Lexeme::default());
assert!(span.open.is_none());
}
@ -85,7 +79,7 @@ mod tests {
expected = "Attempt to render a span tag while open state is unknown"
)]
fn render_unknown_open_state() {
let open_span = Span::lex(&Lexeme::new("", ""));
let open_span = Span::lex(&Lexeme::default());
drop(open_span.render());
}
}

View file

@ -53,6 +53,6 @@ mod tests {
expected = "Attempt to lex a strike tag directly from a lexeme"
)]
fn lex() {
Strike::lex(&Lexeme::new("", ""));
Strike::lex(&Lexeme::default());
}
}

View file

@ -56,6 +56,6 @@ mod tests {
expected = "Attempt to lex an underline tag directly from a lexeme"
)]
fn lex() {
Underline::lex(&Lexeme::new("", ""));
Underline::lex(&Lexeme::default());
}
}