29 lines
809 B
Rust
29 lines
809 B
Rust
use super::*;
|
|
|
|
/// A single top-level item
|
|
#[derive(Debug, Clone)]
|
|
pub(crate) enum Item<'src> {
|
|
Alias(Alias<'src, Name<'src>>),
|
|
Assignment(Assignment<'src>),
|
|
Comment(&'src str),
|
|
Recipe(UnresolvedRecipe<'src>),
|
|
Set(Set<'src>),
|
|
Import {
|
|
relative: StringLiteral<'src>,
|
|
absolute: Option<PathBuf>,
|
|
},
|
|
}
|
|
|
|
impl<'src> Display for Item<'src> {
|
|
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
|
match self {
|
|
Item::Alias(alias) => write!(f, "{alias}"),
|
|
Item::Assignment(assignment) => write!(f, "{assignment}"),
|
|
Item::Comment(comment) => write!(f, "{comment}"),
|
|
Item::Recipe(recipe) => write!(f, "{}", recipe.color_display(Color::never())),
|
|
Item::Set(set) => write!(f, "{set}"),
|
|
Item::Import { relative, .. } => write!(f, "import {relative}"),
|
|
}
|
|
}
|
|
}
|