pub struct BmsTableHtml;Expand description
HTML parsing for BMS difficulty tables.
Provides extraction of the header JSON URL from
<meta name="bmstable" content="..."> or
<meta property="bmstable" content="..."> in HTML page content.
The implementation uses the htmlparser tokenizer under the hood,
returning a borrowed slice of the original input where possible.
Attribute values containing HTML entities are decoded into the tokenizer’s
internal buffer (heap-allocated), which borrows the input string, so the
returned &str lifetime remains tied to the original input.
Tag and attribute names are matched case-insensitively.
Content inside HTML comments is naturally ignored by the tokenizer.
Implementations§
Source§impl BmsTableHtml
impl BmsTableHtml
Sourcepub fn extract_url<'a>(html_content: &'a str) -> Result<&'a str, BmsTableError>
pub fn extract_url<'a>(html_content: &'a str) -> Result<&'a str, BmsTableError>
Extract the header JSON URL from <meta name="bmstable" content="..."> in HTML.
Returns a borrowed &str referencing the original input — no allocation.
Scans <meta> tags looking for elements with name="bmstable" or
property="bmstable" and reads their content attribute.
§Errors
Returns BmsTableError::MetaTagNotFound when the target tag is not
found or content is empty.
§Example
let html = r#"
<!DOCTYPE html>
<html>
<head>
<meta name="bmstable" content="header.json">
</head>
<body></body>
</html>
"#;
let url = BmsTableHtml::extract_url(html).unwrap();
assert_eq!(url, "header.json");