use crate::properties::{PropertyId, PropertyList, PropertyValue};
use crate::Result;
pub(super) fn expand_border_shorthand(
properties: &mut PropertyList,
value: &PropertyValue,
width_id: PropertyId,
style_id: PropertyId,
color_id: PropertyId,
) -> Result<()> {
match value {
PropertyValue::List(values) => {
for val in values {
match val {
PropertyValue::Length(_) => {
properties.set(width_id, val.clone());
}
PropertyValue::Color(_) => {
properties.set(color_id, val.clone());
}
PropertyValue::Enum(_) | PropertyValue::String(_) => {
properties.set(style_id, val.clone());
}
_ => {}
}
}
}
PropertyValue::Length(_) => {
properties.set(width_id, value.clone());
}
PropertyValue::Color(_) => {
properties.set(color_id, value.clone());
}
_ => {
properties.set(width_id, value.clone());
properties.set(style_id, value.clone());
properties.set(color_id, value.clone());
}
}
Ok(())
}