pub proc_macro: Vec<ProcMacro>,
}
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Edition {
- Edition2018,
Edition2015,
+ Edition2018,
+ Edition2021,
}
#[derive(Default, Debug, Clone, PartialEq, Eq)]
let res = match s {
"2015" => Edition::Edition2015,
"2018" => Edition::Edition2018,
+ "2021" => Edition::Edition2021,
_ => return Err(ParseEditionError { invalid_input: s.to_string() }),
};
Ok(res)
f.write_str(match self {
Edition::Edition2015 => "2015",
Edition::Edition2018 => "2018",
+ Edition::Edition2021 => "2021",
})
}
}
const RUSTDOC_FENCE: &str = "```";
const RUSTDOC_CODE_BLOCK_ATTRIBUTES_RUNNABLE: &[&str] =
- &["", "rust", "should_panic", "edition2015", "edition2018"];
+ &["", "rust", "should_panic", "edition2015", "edition2018", "edition2021"];
fn has_runnable_doc_test(attrs: &hir::Attrs) -> bool {
attrs.docs().map_or(false, |doc| {
const RUSTDOC_FENCE: &'static str = "```";
const RUSTDOC_FENCE_TOKENS: &[&'static str] =
- &["", "rust", "should_panic", "ignore", "no_run", "compile_fail", "edition2015", "edition2018"];
+ &["", "rust", "should_panic", "ignore", "no_run", "compile_fail", "edition2015", "edition2018", "edition2021"];
/// Extracts Rust code from documentation comments as well as a mapping from
/// the extracted source code back to the original source ranges.
Edition2015,
#[serde(rename = "2018")]
Edition2018,
+ #[serde(rename = "2021")]
+ Edition2021,
}
impl From<EditionData> for Edition {
match data {
EditionData::Edition2015 => Edition::Edition2015,
EditionData::Edition2018 => Edition::Edition2018,
+ EditionData::Edition2021 => Edition::Edition2021,
}
}
}
const RUSTDOC_FENCE: &str = "```";
const RUSTDOC_CODE_BLOCK_ATTRIBUTES_RUST_SPECIFIC: &[&str] =
- &["", "rust", "should_panic", "ignore", "no_run", "compile_fail", "edition2015", "edition2018"];
+ &["", "rust", "should_panic", "ignore", "no_run", "compile_fail", "edition2015", "edition2018", "edition2021"];
pub(crate) fn format_docs(src: &str) -> String {
let mut processed_lines = Vec::new();
/// Path to the root module of the crate.
root_module: string;
/// Edition of the crate.
- edition: "2015" | "2018";
+ edition: "2015" | "2018" | "2021";
/// Dependencies
deps: Dep[];
/// Should this crate be treated as a member of current "workspace".