use alloc::{borrow::Cow, vec::Vec};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
pub struct Test<'b> {
name: Cow<'b, str>,
path: Option<Cow<'b, str>>,
test: Option<bool>,
bench: Option<bool>,
doc: Option<bool>,
harness: Option<bool>,
edition: Option<Cow<'b, str>>,
#[serde(rename = "required-features")]
required_features: Option<Vec<Cow<'b, str>>>,
}
impl Test<'_> {
pub fn name(&self) -> &str {
&self.name
}
pub fn path(&self) -> Option<&str> {
self.path.as_deref()
}
pub fn test(&self) -> Option<bool> {
self.test
}
pub fn bench(&self) -> Option<bool> {
self.bench
}
pub fn doc(&self) -> Option<bool> {
self.doc
}
pub fn harness(&self) -> Option<bool> {
self.harness
}
pub fn edition(&self) -> Option<&str> {
self.edition.as_deref()
}
pub fn required_features(&self) -> Option<impl Iterator<Item = &str>> {
self.required_features
.as_ref()
.map(|v| v.iter().map(|s| &**s))
}
}