use super::{Attribute, AttributeRef, AttributeRegistration};
use crate::{Immediate, parse};
pub trait AttrParser {
fn parse(parser: &mut dyn parse::Parser<'_>) -> parse::ParseResult<AttributeRef>;
}
pub trait Marker {}
impl<T> Marker for T where T: AttributeRegistration<Value = ()> {}
pub trait IntegerLikeAttr: Attribute {
fn as_immediate(&self) -> Immediate;
fn set_from_immediate_lossy(&mut self, value: Immediate);
}
pub trait BoolLikeAttr: Attribute {
fn as_bool(&self) -> bool;
fn set_bool(&mut self, value: bool);
}