2022-06-18 21:56:31 -07:00
|
|
|
use super::*;
|
2019-11-07 10:55:15 -08:00
|
|
|
|
|
|
|
/// A single top-level item
|
2021-06-08 01:01:27 -07:00
|
|
|
#[derive(Debug, Clone)]
|
2019-11-07 10:55:15 -08:00
|
|
|
pub(crate) enum Item<'src> {
|
2019-11-21 07:39:32 -08:00
|
|
|
Alias(Alias<'src, Name<'src>>),
|
2019-11-07 10:55:15 -08:00
|
|
|
Assignment(Assignment<'src>),
|
2021-06-08 01:01:27 -07:00
|
|
|
Comment(&'src str),
|
2019-12-07 04:03:03 -08:00
|
|
|
Recipe(UnresolvedRecipe<'src>),
|
2019-11-10 23:17:47 -08:00
|
|
|
Set(Set<'src>),
|
2023-12-19 20:31:51 -08:00
|
|
|
Import {
|
|
|
|
relative: StringLiteral<'src>,
|
2023-11-21 11:28:59 -08:00
|
|
|
absolute: Option<PathBuf>,
|
|
|
|
},
|
2019-11-07 10:55:15 -08:00
|
|
|
}
|
2021-06-08 01:01:27 -07:00
|
|
|
|
|
|
|
impl<'src> Display for Item<'src> {
|
|
|
|
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
|
|
|
match self {
|
2022-12-15 16:53:21 -08:00
|
|
|
Item::Alias(alias) => write!(f, "{alias}"),
|
|
|
|
Item::Assignment(assignment) => write!(f, "{assignment}"),
|
|
|
|
Item::Comment(comment) => write!(f, "{comment}"),
|
2021-07-28 18:06:57 -07:00
|
|
|
Item::Recipe(recipe) => write!(f, "{}", recipe.color_display(Color::never())),
|
2022-12-15 16:53:21 -08:00
|
|
|
Item::Set(set) => write!(f, "{set}"),
|
2023-12-19 20:31:51 -08:00
|
|
|
Item::Import { relative, .. } => write!(f, "import {relative}"),
|
2021-06-08 01:01:27 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|