#[rustfmt::skip]
pub mod icons;
pub const VIEW_BOX: (f32, f32, f32, f32) = (0.0, 0.0, 24.0, 24.0);
pub const STROKE_WIDTH: f32 = 2.0;
pub fn to_svg(path_data: &str, size: f32) -> String {
format!(
r#"<svg xmlns="http://www.w3.org/2000/svg" width="{size}" height="{size}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">{path_data}</svg>"#
)
}
pub fn to_svg_with_stroke(path_data: &str, size: f32, stroke_width: f32) -> String {
format!(
r#"<svg xmlns="http://www.w3.org/2000/svg" width="{size}" height="{size}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="{stroke_width}" stroke-linecap="round" stroke-linejoin="round">{path_data}</svg>"#
)
}
pub fn to_svg_colored(path_data: &str, size: f32, color: &str) -> String {
format!(
r#"<svg xmlns="http://www.w3.org/2000/svg" width="{size}" height="{size}" viewBox="0 0 24 24" fill="none" stroke="{color}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">{path_data}</svg>"#
)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_to_svg() {
let svg = to_svg(icons::CHECK, 24.0);
assert!(svg.contains("viewBox=\"0 0 24 24\""));
assert!(svg.contains("width=\"24\""));
assert!(svg.contains("stroke-width=\"2\""));
}
#[test]
fn test_to_svg_with_stroke() {
let svg = to_svg_with_stroke(icons::CHECK, 16.0, 1.5);
assert!(svg.contains("width=\"16\""));
assert!(svg.contains("stroke-width=\"1.5\""));
}
}