use super::rules::RuleSet;
use super::values::format_value;
use crate::Options;
use crate::resolve::VarTable;
use std::fmt::Write;
pub fn emit(out: &mut String, vars: &VarTable, rules: &RuleSet, opts: &Options) {
out.push_str(" <style>\n");
if !opts.bake_vars {
let mut names: Vec<&String> = vars.entries.keys().collect();
names.sort();
if !names.is_empty() {
out.push_str(" @layer lini.defaults { :root, .lini {");
for (i, name) in names.iter().enumerate() {
let value = vars.entries.get(*name).unwrap();
if i > 0 {
out.push(' ');
}
write!(
out,
" --lini-{}: {};",
name,
format_value(value, vars, opts)
)
.unwrap();
}
out.push_str(" } }\n");
}
}
rules.emit(out);
out.push_str(" </style>\n");
}