MCPcopy Create free account
hub / github.com/csskit/csskit / visit_url_or_string

Method visit_url_or_string

crates/csskit_transform/src/reduce_urls.rs:26–54  ·  view source on GitHub ↗
(&mut self, url_or_string: &UrlOrString)

Source from the content-addressed store, hash-verified

24 N: Visitable + NodeWithMetadata<CssMetadata>,
25{
26 fn visit_url_or_string(&mut self, url_or_string: &UrlOrString) {
27 let UrlOrString::Url(url) = url_or_string else {
28 return;
29 };
30 match url {
31 Url::UrlFunction(_, string, _) | Url::SrcFunction(_, string, _) => {
32 self.transformer.replace_parsed::<UrlOrString>(
33 url_or_string.to_span(),
34 &format!("\"{}\"", {
35 let sc = self.transformer.to_source_cursor((*string).into());
36 let token = sc.token();
37 let start = token.leading_len() as usize;
38 let end = sc.source().len() - token.trailing_len() as usize;
39 &sc.source()[start..end]
40 }),
41 );
42 }
43 Url::Url(url_token) => {
44 let sc = self.transformer.to_source_cursor((*url_token).into());
45 let token = sc.token();
46 let leading_len = token.leading_len() as usize;
47 let trailing_len = token.trailing_len() as usize;
48 let url_content = &sc.source()[leading_len..(sc.source().len() - trailing_len)];
49 let url_content = url_content.trim();
50 self.transformer
51 .replace_parsed::<UrlOrString>(url_or_string.to_span(), &format!("\"{}\"", url_content));
52 }
53 }
54 }
55}
56
57#[cfg(test)]

Callers

nothing calls this directly

Calls 7

leading_lenMethod · 0.80
trailing_lenMethod · 0.80
to_spanMethod · 0.45
to_source_cursorMethod · 0.45
tokenMethod · 0.45
sourceMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected