diff --git a/src/format/mod.rs b/src/format/mod.rs index e98c058..a1feecc 100644 --- a/src/format/mod.rs +++ b/src/format/mod.rs @@ -10,6 +10,7 @@ enum Chunk { Package, License, Repository, + Feature, } pub struct Pattern(Vec); @@ -24,6 +25,7 @@ impl Pattern { RawChunk::Argument("p") => Chunk::Package, RawChunk::Argument("l") => Chunk::License, RawChunk::Argument("r") => Chunk::Repository, + RawChunk::Argument("f") => Chunk::Feature, RawChunk::Argument(ref a) => { return Err(anyhow!("unsupported pattern `{}`", a)); } @@ -77,6 +79,11 @@ impl<'a> fmt::Display for Display<'a> { write!(fmt, "{}", repository)? } } + Chunk::Feature => { + let mut features : Vec<_> = self.package.features.keys().cloned().collect(); + features.sort(); + write!(fmt, "{}", features.join(","))? + } } }