Hello,

I'm having some problems understanding the following line of code in the
servo codebase:
https://github.com/servo/servo/blob/master/components/style/properties/mod.rs.mako#L1524

Declaration_(Declaration{ location: l, name: n, value: v, important: i}) =>
{

The code is doing some pattern matching. `_` normally matches against every
other case. In this case it's preceded by Declaration which I understand as
if `item` matches the result of any function starting with Declaration and
with any suffix which takes a parameter of type Declaration which is
probably a struct in which we destructure the values localtion, name, value
and important.

I can't  seem to find where Declaration is defined, where `mportant` comes
from and I'm really not sure about my interpretation of the meaning of this
line of code.

Any pointers would be appreciated,
Thanks.

Here's the line in context:

match item {
            DeclAtRule(rule) => log_css_error(
                rule.location, format!("Unsupported at-rule in
declaration list: @{:s}", rule.name).as_slice()),
            Declaration_(Declaration{ location: l, name: n, value: v,
important: i}) => {
                // TODO: only keep the last valid declaration for a given name.
                let (list, seen) = if i {
                    (&mut important_declarations, &mut important_seen)
                } else {
                    (&mut normal_declarations, &mut normal_seen)
                };
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to