### `FromAttr`

Main entry point. Derived via macro. Anything that can be parsed from one or multiple attributes.

### `AttributeNamed`

Values that can be parsed named, e.g. `name(<value>)`, `name = <value>`, `name` (as flag).

This is the default parsing mode used for fields in derived `FromAttr` implementations.

### `AttributePositional`

Values that can be parsed positionally, i.e., without a name, e.g. `"literal"`, `a + b`, `true`.

When deriving `FromAttr` this is enabled via putting `#[attr(positional)]` on the field.

`impl <T: AttributeValue> FromAttr for T`
`impl <T: AttributeValue> AttributeNamed for T`
`impl <T: AttributeValue + PositionalValue> AttributePositional for T`

### `AttributeValue`

Any attribute that has the concept of a value, e.g., `"positional"`, `meta(<value>)`, `key = <value>`.

### `PositionalValue`

Empty marker trait, defining which `AttributeValue` implement `AttributePositional`.
`impl <T: AttributeMeta> AttributeValue for T`

### `AttributeMeta`

Values in function or meta style attributes, i.e., `meta(<value>).`