diff --git a/build.rs b/build.rs index da45d04..61d9566 100644 --- a/build.rs +++ b/build.rs @@ -4,23 +4,23 @@ use std::{ env, fmt::Debug, fs::{self, File}, - io::{self, BufWriter, Write}, + io::{self, BufRead, BufReader, BufWriter, Write}, path::Path, }; -use anyhow::Context as _; +use anyhow::{bail, Context as _}; use proc_macro2::{Ident, Span, TokenStream}; use quote::{quote, ToTokens}; use serde::{Deserialize, Serialize}; use tera::{Context, Tera}; -#[derive(Clone, Debug, Deserialize, Serialize)] -struct FeatureToml { +#[derive(Serialize)] +struct Data { versions: Vec, unstable: FeatureList, } -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Deserialize, Serialize)] struct VersionData { /// Rust version number, e.g. "1.0.0" number: String, @@ -33,19 +33,17 @@ struct VersionData { gh_milestone_id: Option, } -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Serialize)] struct FeatureList { - #[serde(flatten)] version: Option, /// List of features (to be) stabilized in this release - #[serde(default)] features: Vec, } /// A "feature", as tracked by this app. Can be a nightly Rust feature, a /// stabilized API, or anything else that one version of Rust (deliberately) /// supports while a previous one didn't support it. -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Deserialize, Serialize)] struct FeatureData { /// Short description to identify the feature title: String, @@ -54,7 +52,8 @@ struct FeatureData { flag: Option, /// Feature slug, used for the permalink. If a feature flag exists, this /// can be omitted, then the flag is used for the permalink. - slug: Option, + #[serde(skip_deserializing)] // filled from filename or flag + slug: String, /// RFC id (https://github.com/rust-lang/rfcs/pull/{id}) rfc_id: Option, /// Implementation PR id (https://github.com/rust-lang/rust/pull/{id}) @@ -95,13 +94,11 @@ impl Default for Channel { } fn main() -> anyhow::Result<()> { - println!("cargo:rerun-if-changed=features.toml"); println!("cargo:rerun-if-changed=templates/index.html"); println!("cargo:rerun-if-changed=templates/nightly.html"); println!("cargo:rerun-if-changed=templates/skel.html"); - let features_raw = fs::read("features.toml")?; - let feature_toml: FeatureToml = toml::from_slice(&features_raw)?; + let data = collect_data()?; // TODO: Add a filter that replaces `` by let tera = Tera::new("templates/*").context("loading templates")?; @@ -111,7 +108,7 @@ fn main() -> anyhow::Result<()> { .or_else(|e| if e.kind() == io::ErrorKind::AlreadyExists { Ok(()) } else { Err(e) }) .context("creating dir public")?; - let ctx = Context::from_serialize(&feature_toml)?; + let ctx = Context::from_serialize(&data)?; fs::write( "public/index.html", tera.render("index.html", &ctx).context("rendering index.html")?, @@ -127,12 +124,96 @@ fn main() -> anyhow::Result<()> { let out_path = Path::new(&out_dir).join("features.rs"); let mut out = BufWriter::new(File::create(out_path).context("creating $OUT_DIR/features.rs")?); - write!(out, "{}", generate_data(feature_toml)).context("writing features.rs")?; + write!(out, "{}", generate_output(data)).context("writing features.rs")?; Ok(()) } -fn generate_data(feature_toml: FeatureToml) -> TokenStream { +fn collect_data() -> anyhow::Result { + let mut data = Data { + versions: Vec::new(), + unstable: FeatureList { version: None, features: Vec::new() }, + }; + + for entry in fs::read_dir("data").context("opening data/")? { + let dir = entry?; + assert!(dir.file_type()?.is_dir(), "expected only directories in data/"); + + let dir_name = dir.file_name().into_string().unwrap(); + println!("cargo:rerun-if-changed=data/{}", dir_name); + + let features = match dir_name.as_str() { + "unstable" => &mut data.unstable.features, + _ => { + let version_data_raw = fs::read(dir.path().join("version.toml"))?; + let version_data = toml::from_slice(&version_data_raw)?; + data.versions + .push(FeatureList { version: Some(version_data), features: Vec::new() }); + &mut data.versions.last_mut().unwrap().features + } + }; + + for entry in + fs::read_dir(dir.path()).with_context(|| format!("opening data/{}", dir_name))? + { + let file = entry?; + let file_name = file.file_name().into_string().unwrap(); + println!("cargo:rerun-if-changed=data/{}/{}", dir_name, file_name); + + if file_name == "version.toml" { + continue; + } + + assert!( + file_name.ends_with(".md"), + "expected only .md files and version.toml in data/*" + ); + let feature_file = BufReader::new( + File::open(file.path()) + .with_context(|| format!("opening data/{}/{}", dir_name, file_name))?, + ); + + let mut feature_file_lines = feature_file.lines(); + let mut feature_file_frontmatter = String::new(); + assert_eq!( + match feature_file_lines.next() { + Some(Ok(s)) => s, + _ => bail!("reading first line of data/{}/{} failed", dir_name, file_name), + }, + "+++", + "expected frontmatter at the beginning of data/{}/{}", + dir_name, + file_name + ); + + loop { + match feature_file_lines.next() { + Some(Ok(s)) if s == "+++" => break, + Some(Ok(s)) => { + feature_file_frontmatter += s.as_str(); + feature_file_frontmatter.push('\n'); + } + _ => bail!("reading frontmatter of data/{}/{} failed", dir_name, file_name), + } + } + + // TODO: Read file contents after frontmatter + + let mut feature: FeatureData = + toml::from_str(&feature_file_frontmatter).with_context(|| { + format!("deserializing frontmatter of data/{}/{}", dir_name, file_name) + })?; + + // [ file_name without '.md' ] + feature.slug = file_name[..file_name.len() - 3].to_owned(); + features.push(feature); + } + } + + Ok(data) +} + +fn generate_output(feature_toml: Data) -> TokenStream { let mut monogram_index = BTreeMap::new(); let mut bigram_index = BTreeMap::new(); let mut trigram_index = BTreeMap::new(); @@ -173,11 +254,7 @@ fn generate_data(feature_toml: FeatureToml) -> TokenStream { let title = &f.title; let flag = option_literal(&f.flag); - let slug = f - .slug - .as_ref() - .or_else(|| f.flag.as_ref()) - .unwrap_or_else(|| panic!("feature '{}' needs a feature flag or slug", title)); + let slug = f.slug; let rfc_id = option_literal(&f.rfc_id); let impl_pr_id = option_literal(&f.impl_pr_id); let tracking_issue_id = option_literal(&f.tracking_issue_id); diff --git a/data/1.0/associated_types.md b/data/1.0/associated_types.md new file mode 100644 index 0000000..1205b98 --- /dev/null +++ b/data/1.0/associated_types.md @@ -0,0 +1,4 @@ ++++ +title = "associated types in traits" +flag = "associated_types" ++++ diff --git a/data/1.0/default_type_params.md b/data/1.0/default_type_params.md new file mode 100644 index 0000000..a0298a6 --- /dev/null +++ b/data/1.0/default_type_params.md @@ -0,0 +1,4 @@ ++++ +title = "type parameter defaults" +flag = "default_type_params" ++++ diff --git a/data/1.0/if_let.md b/data/1.0/if_let.md new file mode 100644 index 0000000..37cfe5b --- /dev/null +++ b/data/1.0/if_let.md @@ -0,0 +1,4 @@ ++++ +title = "`if let` expressions" +flag = "if_let" ++++ diff --git a/data/1.0/macro_rules.md b/data/1.0/macro_rules.md new file mode 100644 index 0000000..42791e4 --- /dev/null +++ b/data/1.0/macro_rules.md @@ -0,0 +1,4 @@ ++++ +title = "`macro_rules!`" +flag = "macro_rules" ++++ diff --git a/data/1.0/slicing_syntax.md b/data/1.0/slicing_syntax.md new file mode 100644 index 0000000..59bd019 --- /dev/null +++ b/data/1.0/slicing_syntax.md @@ -0,0 +1,4 @@ ++++ +title = "`&foo[a..b]` as slicing syntax" +flag = "slicing_syntax" ++++ diff --git a/data/1.0/struct_variant.md b/data/1.0/struct_variant.md new file mode 100644 index 0000000..1240a40 --- /dev/null +++ b/data/1.0/struct_variant.md @@ -0,0 +1,4 @@ ++++ +title = "struct variants in enums" +flag = "struct_variant" ++++ diff --git a/data/1.0/tuple_indexing.md b/data/1.0/tuple_indexing.md new file mode 100644 index 0000000..ff1c0f6 --- /dev/null +++ b/data/1.0/tuple_indexing.md @@ -0,0 +1,4 @@ ++++ +title = "tuple indexing" +flag = "tuple_indexing" ++++ diff --git a/data/1.0/version.toml b/data/1.0/version.toml new file mode 100644 index 0000000..603957d --- /dev/null +++ b/data/1.0/version.toml @@ -0,0 +1,3 @@ +number = "1.0" +gh_milestone_id = 20 +blog_post_path = "2015/05/15/Rust-1.0.html" diff --git a/data/1.0/while_let.md b/data/1.0/while_let.md new file mode 100644 index 0000000..a41ac07 --- /dev/null +++ b/data/1.0/while_let.md @@ -0,0 +1,4 @@ ++++ +title = "`while let` expressions" +flag = "while_let" ++++ diff --git a/data/1.1/version.toml b/data/1.1/version.toml new file mode 100644 index 0000000..6121cbb --- /dev/null +++ b/data/1.1/version.toml @@ -0,0 +1,2 @@ +number = "1.1" +blog_post_path = "2015/06/25/Rust-1.1.html" diff --git a/data/1.10/version.toml b/data/1.10/version.toml new file mode 100644 index 0000000..a6d8bde --- /dev/null +++ b/data/1.10/version.toml @@ -0,0 +1,2 @@ +number = "1.10" +blog_post_path = "2016/07/07/Rust-1.10.html" diff --git a/data/1.11/version.toml b/data/1.11/version.toml new file mode 100644 index 0000000..1e690ac --- /dev/null +++ b/data/1.11/version.toml @@ -0,0 +1,2 @@ +number = "1.11" +blog_post_path = "2016/08/18/Rust-1.11.html" diff --git a/data/1.12/version.toml b/data/1.12/version.toml new file mode 100644 index 0000000..95bac06 --- /dev/null +++ b/data/1.12/version.toml @@ -0,0 +1,2 @@ +number = "1.12" +blog_post_path = "2016/09/29/Rust-1.12.html" diff --git a/data/1.13/assert_ne.md b/data/1.13/assert_ne.md new file mode 100644 index 0000000..85295dc --- /dev/null +++ b/data/1.13/assert_ne.md @@ -0,0 +1,6 @@ ++++ +title = "`assert_ne!`" +rfc_id = 1653 +impl_pr_id = 35074 +tracking_issue_id = 35073 ++++ diff --git a/data/1.13/debug_assert_ne.md b/data/1.13/debug_assert_ne.md new file mode 100644 index 0000000..0208f14 --- /dev/null +++ b/data/1.13/debug_assert_ne.md @@ -0,0 +1,6 @@ ++++ +title = "`debug_assert_ne!`" +rfc_id = 1653 +impl_pr_id = 35074 +tracking_issue_id = 35073 ++++ diff --git a/data/1.13/question_mark.md b/data/1.13/question_mark.md new file mode 100644 index 0000000..b0bf41e --- /dev/null +++ b/data/1.13/question_mark.md @@ -0,0 +1,9 @@ ++++ +title = "the `?` operator" +flag = "question_mark" +rfc_id = 243 +impl_pr_id = 31954 +tracking_issue_id = 31436 +stabilization_pr_id = 36995 +edition_guide_path = "rust-2018/error-handling-and-panics/the-question-mark-operator-for-easier-error-handling.html" ++++ diff --git a/data/1.13/type_macros.md b/data/1.13/type_macros.md new file mode 100644 index 0000000..bacb87d --- /dev/null +++ b/data/1.13/type_macros.md @@ -0,0 +1,5 @@ ++++ +title = "`macro_rules!` macros in type position" +flag = "type_macros" +tracking_issue_id = 27245 ++++ diff --git a/data/1.13/version.toml b/data/1.13/version.toml new file mode 100644 index 0000000..b6a7dff --- /dev/null +++ b/data/1.13/version.toml @@ -0,0 +1,2 @@ +number = "1.13" +blog_post_path = "2016/11/10/Rust-1.13.html" diff --git a/data/1.14/dotdot_in_tuple_patterns.md b/data/1.14/dotdot_in_tuple_patterns.md new file mode 100644 index 0000000..cad2bce --- /dev/null +++ b/data/1.14/dotdot_in_tuple_patterns.md @@ -0,0 +1,7 @@ ++++ +title = "`..` in tuple (struct) patterns" +flag = "dotdot_in_tuple_patterns" +rfc_id = 1492 +tracking_issue_id = 33627 +stabilization_pr_id = 36843 ++++ diff --git a/data/1.14/fn_ptr_to_unsafe_fn_ptr.md b/data/1.14/fn_ptr_to_unsafe_fn_ptr.md new file mode 100644 index 0000000..b0db826 --- /dev/null +++ b/data/1.14/fn_ptr_to_unsafe_fn_ptr.md @@ -0,0 +1,4 @@ ++++ +title = "`fn` pointer to `unsafe fn` pointer coercion" +impl_pr_id = 37389 ++++ diff --git a/data/1.14/println_no_args.md b/data/1.14/println_no_args.md new file mode 100644 index 0000000..691ea3f --- /dev/null +++ b/data/1.14/println_no_args.md @@ -0,0 +1,4 @@ ++++ +title = "`println!` without arguments" +impl_pr_id = 36825 ++++ diff --git a/data/1.14/version.toml b/data/1.14/version.toml new file mode 100644 index 0000000..6a3a33d --- /dev/null +++ b/data/1.14/version.toml @@ -0,0 +1,2 @@ +number = "1.14" +blog_post_path = "2016/12/22/Rust-1.14.html" diff --git a/data/1.15/proc_macro_derive.md b/data/1.15/proc_macro_derive.md new file mode 100644 index 0000000..f4104d7 --- /dev/null +++ b/data/1.15/proc_macro_derive.md @@ -0,0 +1,6 @@ ++++ +title = "procedural derive macros (macros 1.1)" +flag = "proc_macro" +rfc_id = 1681 +tracking_issue_id = 35900 ++++ diff --git a/data/1.15/version.toml b/data/1.15/version.toml new file mode 100644 index 0000000..12c9511 --- /dev/null +++ b/data/1.15/version.toml @@ -0,0 +1,2 @@ +number = "1.15" +blog_post_path = "2017/02/02/Rust-1.15.html" diff --git a/data/1.16/assoc_ty_struct_expr_pat.md b/data/1.16/assoc_ty_struct_expr_pat.md new file mode 100644 index 0000000..fcc0404 --- /dev/null +++ b/data/1.16/assoc_ty_struct_expr_pat.md @@ -0,0 +1,5 @@ ++++ +title = "associated types in struct expressions and patterns" +tracking_issue_id = 37544 +stabilization_pr_id = 39282 ++++ diff --git a/data/1.16/self_struct_expr_pat.md b/data/1.16/self_struct_expr_pat.md new file mode 100644 index 0000000..6fbe14e --- /dev/null +++ b/data/1.16/self_struct_expr_pat.md @@ -0,0 +1,5 @@ ++++ +title = "`Self` in struct expressions and patterns" +tracking_issue_id = 37544 +stabilization_pr_id = 39282 ++++ diff --git a/data/1.16/version.toml b/data/1.16/version.toml new file mode 100644 index 0000000..7452a64 --- /dev/null +++ b/data/1.16/version.toml @@ -0,0 +1,3 @@ +number = "1.16" +gh_milestone_id = 33 +blog_post_path = "2017/03/16/Rust-1.16.html" diff --git a/data/1.16/writeln_no_args.md b/data/1.16/writeln_no_args.md new file mode 100644 index 0000000..3f28217 --- /dev/null +++ b/data/1.16/writeln_no_args.md @@ -0,0 +1,4 @@ ++++ +title = "`writeln!` without arguments" +impl_pr_id = 38469 ++++ diff --git a/data/1.17/cell_non_copy.md b/data/1.17/cell_non_copy.md new file mode 100644 index 0000000..f885fe8 --- /dev/null +++ b/data/1.17/cell_non_copy.md @@ -0,0 +1,6 @@ ++++ +title = "`Cell` with non-`Copy` types" +flag = "cell_non_copy" +rfc_id = 1651 +impl_pr_id = 39793 ++++ diff --git a/data/1.17/field_init_shorthand.md b/data/1.17/field_init_shorthand.md new file mode 100644 index 0000000..4a6c3e5 --- /dev/null +++ b/data/1.17/field_init_shorthand.md @@ -0,0 +1,8 @@ ++++ +title = "field init shorthands (`x` for `x: x` in struct initializers)" +flag = "field_init_shorthand" +rfc_id = 1682 +tracking_issue_id = 37340 +stabilization_pr_id = 39761 +edition_guide_path = "rust-2018/data-types/field-init-shorthand.html" ++++ diff --git a/data/1.17/static_in_const.md b/data/1.17/static_in_const.md new file mode 100644 index 0000000..af2600d --- /dev/null +++ b/data/1.17/static_in_const.md @@ -0,0 +1,8 @@ ++++ +title = "elision of `'static` lifetimes in `static`s and `const`s" +flag = "static_in_const" +rfc_id = 1623 +tracking_issue_id = 35897 +stabilization_pr_id = 39265 +edition_guide_path = "rust-2018/ownership-and-lifetimes/simpler-lifetimes-in-static-and-const.html" ++++ diff --git a/data/1.17/static_recursion.md b/data/1.17/static_recursion.md new file mode 100644 index 0000000..a49d0ab --- /dev/null +++ b/data/1.17/static_recursion.md @@ -0,0 +1,6 @@ ++++ +title = "recursive static items" +flag = "static_recursion" +tracking_issue_id = 29719 +stabilization_pr_id = 40027 ++++ diff --git a/data/1.17/version.toml b/data/1.17/version.toml new file mode 100644 index 0000000..4c88ddb --- /dev/null +++ b/data/1.17/version.toml @@ -0,0 +1,3 @@ +number = "1.17" +gh_milestone_id = 34 +blog_post_path = "2017/04/27/Rust-1.17.html" diff --git a/data/1.17/where_clauses_with_self.md b/data/1.17/where_clauses_with_self.md new file mode 100644 index 0000000..95ec5de --- /dev/null +++ b/data/1.17/where_clauses_with_self.md @@ -0,0 +1,5 @@ ++++ +title = "`Self` in the where clause of trait impl's" +rfc_id = 1647 +tracking_issue_id = 38864 ++++ diff --git a/data/1.18/pub_restricted.md b/data/1.18/pub_restricted.md new file mode 100644 index 0000000..5be0f2b --- /dev/null +++ b/data/1.18/pub_restricted.md @@ -0,0 +1,13 @@ ++++ +title = "`pub(restricted)` visibilities" +flag = "pub_restricted" +rfc_id = 1422 +tracking_issue_id = 32409 +stabilization_pr_id = 40556 +edition_guide_path = "rust-2018/module-system/more-visibility-modifiers.html" +items = [ + "pub(crate)", + "pub(super)", + "pub(in m)", +] ++++ diff --git a/data/1.18/version.toml b/data/1.18/version.toml new file mode 100644 index 0000000..965c381 --- /dev/null +++ b/data/1.18/version.toml @@ -0,0 +1,3 @@ +number = "1.18" +gh_milestone_id = 35 +blog_post_path = "2017/06/08/Rust-1.18.html" diff --git a/data/1.18/windows_subsystem.md b/data/1.18/windows_subsystem.md new file mode 100644 index 0000000..4de142e --- /dev/null +++ b/data/1.18/windows_subsystem.md @@ -0,0 +1,5 @@ ++++ +title = "`#![windows_subsystem]`" +flag = "windows_subsystem" +tracking_issue_id = 37499 ++++ diff --git a/data/1.19/closure_to_fn_coercion.md b/data/1.19/closure_to_fn_coercion.md new file mode 100644 index 0000000..2837c01 --- /dev/null +++ b/data/1.19/closure_to_fn_coercion.md @@ -0,0 +1,7 @@ ++++ +title = "non-capturing closure to function pointer coercion" +flag = "closure_to_fn_coercion" +rfc_id = 1558 +tracking_issue_id = 39817 +stabilization_pr_id = 42162 ++++ diff --git a/data/1.19/eprint.md b/data/1.19/eprint.md new file mode 100644 index 0000000..14d42c3 --- /dev/null +++ b/data/1.19/eprint.md @@ -0,0 +1,4 @@ ++++ +title = "`eprint!`" +impl_pr_id = 41192 ++++ diff --git a/data/1.19/eprintln.md b/data/1.19/eprintln.md new file mode 100644 index 0000000..6309f51 --- /dev/null +++ b/data/1.19/eprintln.md @@ -0,0 +1,6 @@ ++++ +title = "`eprintln!`" +rfc_id = 1869 +impl_pr_id = 41192 +tracking_issue_id = 40528 ++++ diff --git a/data/1.19/loop_break_value.md b/data/1.19/loop_break_value.md new file mode 100644 index 0000000..9b426b4 --- /dev/null +++ b/data/1.19/loop_break_value.md @@ -0,0 +1,8 @@ ++++ +title = "`break` with a value inside `loop`s" +flag = "loop_break_value" +rfc_id = 1624 +tracking_issue_id = 37339 +stabilization_pr_id = 42016 +edition_guide_path = "rust-2018/control-flow/loops-can-break-with-a-value.html" ++++ diff --git a/data/1.19/relaxed_adts.md b/data/1.19/relaxed_adts.md new file mode 100644 index 0000000..05333af --- /dev/null +++ b/data/1.19/relaxed_adts.md @@ -0,0 +1,5 @@ ++++ +title = "numeric fields in struct expressions and patterns" +flag = "relaxed_adts" +tracking_issue_id = 35626 ++++ diff --git a/data/1.19/untagged_unions.md b/data/1.19/untagged_unions.md new file mode 100644 index 0000000..2875565 --- /dev/null +++ b/data/1.19/untagged_unions.md @@ -0,0 +1,7 @@ ++++ +title = "`union`s" +flag = "untagged_unions" +rfc_id = 1444 +tracking_issue_id = 32836 +stabilization_pr_id = 42068 ++++ diff --git a/data/1.19/version.toml b/data/1.19/version.toml new file mode 100644 index 0000000..a08f673 --- /dev/null +++ b/data/1.19/version.toml @@ -0,0 +1,3 @@ +number = "1.19" +gh_milestone_id = 36 +blog_post_path = "2017/07/20/Rust-1.19.html" diff --git a/data/1.2/atomic_ptr_send.md b/data/1.2/atomic_ptr_send.md new file mode 100644 index 0000000..1e3997e --- /dev/null +++ b/data/1.2/atomic_ptr_send.md @@ -0,0 +1,3 @@ ++++ +title = "`Send` implementation for `AtomicPtr`" ++++ diff --git a/data/1.2/iter_empty.md b/data/1.2/iter_empty.md new file mode 100644 index 0000000..a28fcfe --- /dev/null +++ b/data/1.2/iter_empty.md @@ -0,0 +1,3 @@ ++++ +title = "`iter::empty`" ++++ diff --git a/data/1.2/iter_once.md b/data/1.2/iter_once.md new file mode 100644 index 0000000..8472aec --- /dev/null +++ b/data/1.2/iter_once.md @@ -0,0 +1,3 @@ ++++ +title = "`iter::once`" ++++ diff --git a/data/1.2/version.toml b/data/1.2/version.toml new file mode 100644 index 0000000..83be048 --- /dev/null +++ b/data/1.2/version.toml @@ -0,0 +1,2 @@ +number = "1.2" +blog_post_path = "2015/08/06/Rust-1.2.html" diff --git a/data/1.20/associated_consts.md b/data/1.20/associated_consts.md new file mode 100644 index 0000000..1d45b2a --- /dev/null +++ b/data/1.20/associated_consts.md @@ -0,0 +1,7 @@ ++++ +title = "associated constants in `trait` and `impl` blocks" +flag = "associated_consts" +tracking_issue_id = 29646 +stabilization_pr_id = 42809 +edition_guide_path = "rust-2018/trait-system/associated-constants.html" ++++ diff --git a/data/1.20/compile_error.md b/data/1.20/compile_error.md new file mode 100644 index 0000000..f7e2697 --- /dev/null +++ b/data/1.20/compile_error.md @@ -0,0 +1,8 @@ ++++ +title = "`compile_error!`" +flag = "compile_error" +rfc_id = 1695 +impl_pr_id = 42620 +tracking_issue_id = 40872 +stabilization_pr_id = 43373 ++++ diff --git a/data/1.20/struct_field_attributes.md b/data/1.20/struct_field_attributes.md new file mode 100644 index 0000000..3610b14 --- /dev/null +++ b/data/1.20/struct_field_attributes.md @@ -0,0 +1,5 @@ ++++ +title = "attributes on struct literal fields" +flag = "struct_field_attributes" +tracking_issue_id = 38814 ++++ diff --git a/data/1.20/unimplemented_macro_args.md b/data/1.20/unimplemented_macro_args.md new file mode 100644 index 0000000..c47ae50 --- /dev/null +++ b/data/1.20/unimplemented_macro_args.md @@ -0,0 +1,4 @@ ++++ +title = "`unimplemented!` with a message" +impl_pr_id = 42155 ++++ diff --git a/data/1.20/version.toml b/data/1.20/version.toml new file mode 100644 index 0000000..c1d5647 --- /dev/null +++ b/data/1.20/version.toml @@ -0,0 +1,3 @@ +number = "1.20" +gh_milestone_id = 37 +blog_post_path = "2017/08/31/Rust-1.20.html" diff --git a/data/1.21/version.toml b/data/1.21/version.toml new file mode 100644 index 0000000..a4e55f6 --- /dev/null +++ b/data/1.21/version.toml @@ -0,0 +1,3 @@ +number = "1.21" +gh_milestone_id = 38 +blog_post_path = "2017/10/12/Rust-1.21.html" diff --git a/data/1.22/drop_types_in_const.md b/data/1.22/drop_types_in_const.md new file mode 100644 index 0000000..a80648d --- /dev/null +++ b/data/1.22/drop_types_in_const.md @@ -0,0 +1,6 @@ ++++ +title = "`Drop` types in constants" +flag = "drop_types_in_const" +rfc_id = 1440 +tracking_issue_id = 33156 ++++ diff --git a/data/1.22/version.toml b/data/1.22/version.toml new file mode 100644 index 0000000..02d1d85 --- /dev/null +++ b/data/1.22/version.toml @@ -0,0 +1,3 @@ +number = "1.22" +gh_milestone_id = 39 +blog_post_path = "2017/11/22/Rust-1.22.html" diff --git a/data/1.23/unsized_ptr_as_mut.md b/data/1.23/unsized_ptr_as_mut.md new file mode 100644 index 0000000..9bd5d93 --- /dev/null +++ b/data/1.23/unsized_ptr_as_mut.md @@ -0,0 +1,4 @@ ++++ +title = "`as_mut` on `*mut T`" +impl_pr_id = 44932 ++++ diff --git a/data/1.23/unsized_ptr_as_ref.md b/data/1.23/unsized_ptr_as_ref.md new file mode 100644 index 0000000..7cc64a3 --- /dev/null +++ b/data/1.23/unsized_ptr_as_ref.md @@ -0,0 +1,8 @@ ++++ +title = "`as_ref` on pointers to unsized types" +impl_pr_id = 44932 +items = [ + "<*const T>::as_ref", + "<*mut T>::as_ref", +] ++++ diff --git a/data/1.23/version.toml b/data/1.23/version.toml new file mode 100644 index 0000000..4c00ceb --- /dev/null +++ b/data/1.23/version.toml @@ -0,0 +1,3 @@ +number = "1.23" +gh_milestone_id = 40 +blog_post_path = "2018/01/04/Rust-1.23.html" diff --git a/data/1.24/abi_sysv64.md b/data/1.24/abi_sysv64.md new file mode 100644 index 0000000..3d8db3d --- /dev/null +++ b/data/1.24/abi_sysv64.md @@ -0,0 +1,5 @@ ++++ +title = "the sysV64 ABI on any platform" +flag = "abi_sysv64" +tracking_issue_id = 36167 ++++ diff --git a/data/1.24/unsized_ptr_is_null.md b/data/1.24/unsized_ptr_is_null.md new file mode 100644 index 0000000..99f0c0f --- /dev/null +++ b/data/1.24/unsized_ptr_is_null.md @@ -0,0 +1,8 @@ ++++ +title = "`is_null` on pointers to unsized types" +impl_pr_id = 46094 +items = [ + "<*const T>::is_null", + "<*mut T>::is_null", +] ++++ diff --git a/data/1.24/version.toml b/data/1.24/version.toml new file mode 100644 index 0000000..fce5df6 --- /dev/null +++ b/data/1.24/version.toml @@ -0,0 +1,3 @@ +number = "1.24" +gh_milestone_id = 41 +blog_post_path = "2018/02/15/Rust-1.24.html" diff --git a/data/1.25/match_beginning_vert.md b/data/1.25/match_beginning_vert.md new file mode 100644 index 0000000..5a1793f --- /dev/null +++ b/data/1.25/match_beginning_vert.md @@ -0,0 +1,7 @@ ++++ +title = "`|` at the beginning of match arms" +flag = "match_beginning_vert" +rfc_id = 1925 +tracking_issue_id = 44101 +stabilization_pr_id = 47947 ++++ diff --git a/data/1.25/repr_align.md b/data/1.25/repr_align.md new file mode 100644 index 0000000..272c6be --- /dev/null +++ b/data/1.25/repr_align.md @@ -0,0 +1,7 @@ ++++ +title = "`#[repr(align(N))]`" +flag = "repr_align" +rfc_id = 1358 +tracking_issue_id = 33626 +stabilization_pr_id = 47006 ++++ diff --git a/data/1.25/use_nested_groups.md b/data/1.25/use_nested_groups.md new file mode 100644 index 0000000..f3a4e28 --- /dev/null +++ b/data/1.25/use_nested_groups.md @@ -0,0 +1,8 @@ ++++ +title = "nested groups in imports" +flag = "use_nested_groups" +rfc_id = 2128 +tracking_issue_id = 44494 +stabilization_pr_id = 47948 +edition_guide_path = "rust-2018/module-system/nested-imports-with-use.html" ++++ diff --git a/data/1.25/version.toml b/data/1.25/version.toml new file mode 100644 index 0000000..d998384 --- /dev/null +++ b/data/1.25/version.toml @@ -0,0 +1,3 @@ +number = "1.25" +gh_milestone_id = 44 +blog_post_path = "2018/03/29/Rust-1.25.html" diff --git a/data/1.26/clone_closures.md b/data/1.26/clone_closures.md new file mode 100644 index 0000000..4347ac3 --- /dev/null +++ b/data/1.26/clone_closures.md @@ -0,0 +1,6 @@ ++++ +title = "`Clone` implementation for applicable closures" +flag = "clone_closures" +rfc_id = 2132 +tracking_issue_id = 44490 ++++ diff --git a/data/1.26/conservative_impl_trait.md b/data/1.26/conservative_impl_trait.md new file mode 100644 index 0000000..e720db0 --- /dev/null +++ b/data/1.26/conservative_impl_trait.md @@ -0,0 +1,6 @@ ++++ +title = "`impl Trait` in function return types" +flag = "conservative_impl_trait" +tracking_issue_id = 34511 +edition_guide_path = "rust-2018/trait-system/impl-trait-for-returning-complex-types-with-ease.html" ++++ diff --git a/data/1.26/const_indexing.md b/data/1.26/const_indexing.md new file mode 100644 index 0000000..81a380a --- /dev/null +++ b/data/1.26/const_indexing.md @@ -0,0 +1,6 @@ ++++ +title = "array indexing in constants" +flag = "const_indexing" +tracking_issue_id = 29947 +stabilization_pr_id = 46882 ++++ diff --git a/data/1.26/copy_closures.md b/data/1.26/copy_closures.md new file mode 100644 index 0000000..4bf7cb1 --- /dev/null +++ b/data/1.26/copy_closures.md @@ -0,0 +1,6 @@ ++++ +title = "`Copy` implementation for applicable closures" +flag = "copy_closures" +rfc_id = 2132 +tracking_issue_id = 44490 ++++ diff --git a/data/1.26/dotdoteq_in_patterns.md b/data/1.26/dotdoteq_in_patterns.md new file mode 100644 index 0000000..aff0474 --- /dev/null +++ b/data/1.26/dotdoteq_in_patterns.md @@ -0,0 +1,11 @@ ++++ +title = "inclusive ranges in patterns" +flag = "dotdoteq_in_patterns" +rfc_id = 1192 +tracking_issue_id = 28237 +book_path = "ch18-03-pattern-syntax.html#matching-ranges-of-values-with-" +items = [ + "a..=b", + "..=b", +] ++++ diff --git a/data/1.26/i128_type.md b/data/1.26/i128_type.md new file mode 100644 index 0000000..057d401 --- /dev/null +++ b/data/1.26/i128_type.md @@ -0,0 +1,10 @@ ++++ +title = "128 bit integer types" +flag = "i128_type" +tracking_issue_id = 35118 +edition_guide_path = "rust-2018/data-types/128-bit-integers.html" +items = [ + "i128", + "u128", +] ++++ diff --git a/data/1.26/inclusive_range_syntax.md b/data/1.26/inclusive_range_syntax.md new file mode 100644 index 0000000..a0d5a7c --- /dev/null +++ b/data/1.26/inclusive_range_syntax.md @@ -0,0 +1,12 @@ ++++ +title = "inclusive range syntax" +flag = "inclusive_range_syntax" +rfc_id = 1192 +tracking_issue_id = 28237 +stabilization_pr_id = 47813 +edition_guide_path = "rust-2018/data-types/inclusive-ranges.html" +items = [ + "a..=b", + "..=b", +] ++++ diff --git a/data/1.26/match_default_bindings.md b/data/1.26/match_default_bindings.md new file mode 100644 index 0000000..13c20b8 --- /dev/null +++ b/data/1.26/match_default_bindings.md @@ -0,0 +1,7 @@ ++++ +title = "default match binding modes" +flag = "match_default_bindings" +rfc_id = 2005 +stabilization_pr_id = 42640 +edition_guide_path = "rust-2018/ownership-and-lifetimes/default-match-bindings.html" ++++ diff --git a/data/1.26/termination_trait.md b/data/1.26/termination_trait.md new file mode 100644 index 0000000..0b25885 --- /dev/null +++ b/data/1.26/termination_trait.md @@ -0,0 +1,6 @@ ++++ +title = "types implementing `Termination` as the return type for `fn main()`" +flag = "termination_trait" +tracking_issue_id = 43301 +edition_guide_path = "rust-2018/error-handling-and-panics/question-mark-in-main-and-tests.html" ++++ diff --git a/data/1.26/underscore_lifetimes.md b/data/1.26/underscore_lifetimes.md new file mode 100644 index 0000000..a532068 --- /dev/null +++ b/data/1.26/underscore_lifetimes.md @@ -0,0 +1,8 @@ ++++ +title = "placeholder lifetimes (`'_`)" +flag = "underscore_lifetimes" +rfc_id = 2115 +tracking_issue_id = 48469 +stabilization_pr_id = 49458 +edition_guide_path = "rust-2018/ownership-and-lifetimes/the-anonymous-lifetime.html" ++++ diff --git a/data/1.26/universal_impl_trait.md b/data/1.26/universal_impl_trait.md new file mode 100644 index 0000000..401022d --- /dev/null +++ b/data/1.26/universal_impl_trait.md @@ -0,0 +1,6 @@ ++++ +title = "`impl Trait` in function arguments" +flag = "universal_impl_trait" +tracking_issue_id = 34511 +edition_guide_path = "rust-2018/trait-system/impl-trait-for-returning-complex-types-with-ease.html" ++++ diff --git a/data/1.26/version.toml b/data/1.26/version.toml new file mode 100644 index 0000000..07cfa78 --- /dev/null +++ b/data/1.26/version.toml @@ -0,0 +1,3 @@ +number = "1.26" +gh_milestone_id = 48 +blog_post_path = "2018/05/10/Rust-1.26.html" diff --git a/data/1.27/cfg_target_feature.md b/data/1.27/cfg_target_feature.md new file mode 100644 index 0000000..36bfeca --- /dev/null +++ b/data/1.27/cfg_target_feature.md @@ -0,0 +1,5 @@ ++++ +title = "`#[cfg(target_feature = \"...\")]`" +flag = "cfg_target_feature" +tracking_issue_id = 29717 ++++ diff --git a/data/1.27/dyn_trait.md b/data/1.27/dyn_trait.md new file mode 100644 index 0000000..65feea6 --- /dev/null +++ b/data/1.27/dyn_trait.md @@ -0,0 +1,6 @@ ++++ +title = "`dyn Trait` as a syntax for trait objects" +flag = "dyn_trait" +tracking_issue_id = 44662 +edition_guide_path = "rust-2018/trait-system/dyn-trait-for-trait-objects.html" ++++ diff --git a/data/1.27/fn_must_use.md b/data/1.27/fn_must_use.md new file mode 100644 index 0000000..4d25ae5 --- /dev/null +++ b/data/1.27/fn_must_use.md @@ -0,0 +1,6 @@ ++++ +title = "`#[must_use]` on functions" +flag = "fn_must_use" +rfc_id = 1940 +tracking_issue_id = 43302 ++++ diff --git a/data/1.27/generic_param_attrs.md b/data/1.27/generic_param_attrs.md new file mode 100644 index 0000000..fb55cf0 --- /dev/null +++ b/data/1.27/generic_param_attrs.md @@ -0,0 +1,6 @@ ++++ +title = "attributes on generic parameters" +flag = "generic_param_attrs" +rfc_id = 1327 +tracking_issue_id = 48848 ++++ diff --git a/data/1.27/macro_lifetime_matcher.md b/data/1.27/macro_lifetime_matcher.md new file mode 100644 index 0000000..a3be6d7 --- /dev/null +++ b/data/1.27/macro_lifetime_matcher.md @@ -0,0 +1,6 @@ ++++ +title = "the `lifetime` fragment specifier in `macro_rules!`" +flag = "macro_lifetime_matcher" +tracking_issue_id = 34303 +stabilization_pr_id = 50385 ++++ diff --git a/data/1.27/proc_ident.md b/data/1.27/proc_ident.md new file mode 100644 index 0000000..3f1c924 --- /dev/null +++ b/data/1.27/proc_ident.md @@ -0,0 +1,4 @@ ++++ +title = "`proc` as an identifier" +impl_pr_id = 49699 ++++ diff --git a/data/1.27/target_feature.md b/data/1.27/target_feature.md new file mode 100644 index 0000000..5c00f6e --- /dev/null +++ b/data/1.27/target_feature.md @@ -0,0 +1,3 @@ ++++ +title = "`#[target_feature(...)]`" ++++ diff --git a/data/1.27/termination_trait_test.md b/data/1.27/termination_trait_test.md new file mode 100644 index 0000000..9ad97b6 --- /dev/null +++ b/data/1.27/termination_trait_test.md @@ -0,0 +1,5 @@ ++++ +title = "types implementing `Termination` as the return type for `#[test]`s" +flag = "termination_trait_test" +tracking_issue_id = 48854 ++++ diff --git a/data/1.27/version.toml b/data/1.27/version.toml new file mode 100644 index 0000000..9eaa6cd --- /dev/null +++ b/data/1.27/version.toml @@ -0,0 +1,3 @@ +number = "1.27" +gh_milestone_id = 50 +blog_post_path = "2018/06/21/Rust-1.27.html" diff --git a/data/1.28/alignof_ident.md b/data/1.28/alignof_ident.md new file mode 100644 index 0000000..f03615f --- /dev/null +++ b/data/1.28/alignof_ident.md @@ -0,0 +1,5 @@ ++++ +title = "`alignof` as an identifier" +rfc_id = 2421 +impl_pr_id = 51196 ++++ diff --git a/data/1.28/global_allocator.md b/data/1.28/global_allocator.md new file mode 100644 index 0000000..1d59791 --- /dev/null +++ b/data/1.28/global_allocator.md @@ -0,0 +1,6 @@ ++++ +title = "`#[global_allocator]`" +flag = "global_allocator" +tracking_issue_id = 27389 +edition_guide_path = "rust-2018/platform-and-target-support/global-allocators.html" ++++ diff --git a/data/1.28/offsetof_ident.md b/data/1.28/offsetof_ident.md new file mode 100644 index 0000000..3d166b1 --- /dev/null +++ b/data/1.28/offsetof_ident.md @@ -0,0 +1,5 @@ ++++ +title = "`offsetof` as an identifier" +rfc_id = 2421 +impl_pr_id = 51196 ++++ diff --git a/data/1.28/pure_ident.md b/data/1.28/pure_ident.md new file mode 100644 index 0000000..ac3e743 --- /dev/null +++ b/data/1.28/pure_ident.md @@ -0,0 +1,5 @@ ++++ +title = "`pure` as an identifier" +rfc_id = 2421 +impl_pr_id = 51196 ++++ diff --git a/data/1.28/repr_transparent.md b/data/1.28/repr_transparent.md new file mode 100644 index 0000000..477e3c2 --- /dev/null +++ b/data/1.28/repr_transparent.md @@ -0,0 +1,6 @@ ++++ +title = "`#[repr(transparent)]` on newtype structs" +flag = "repr_transparent" +tracking_issue_id = 43036 +stabilization_pr_id = 51562 ++++ diff --git a/data/1.28/sizeof_ident.md b/data/1.28/sizeof_ident.md new file mode 100644 index 0000000..e3860be --- /dev/null +++ b/data/1.28/sizeof_ident.md @@ -0,0 +1,5 @@ ++++ +title = "`sizeof` as an identifier" +rfc_id = 2421 +impl_pr_id = 51196 ++++ diff --git a/data/1.28/version.toml b/data/1.28/version.toml new file mode 100644 index 0000000..ecbd42d --- /dev/null +++ b/data/1.28/version.toml @@ -0,0 +1,3 @@ +number = "1.28" +gh_milestone_id = 51 +blog_post_path = "2018/08/02/Rust-1.28.html" diff --git a/data/1.29/proc_macro.md b/data/1.29/proc_macro.md new file mode 100644 index 0000000..a52fef5 --- /dev/null +++ b/data/1.29/proc_macro.md @@ -0,0 +1,6 @@ ++++ +title = "procedural macros" +flag = "proc_macro" +tracking_issue_id = 38356 +stabilization_pr_id = 52081 ++++ diff --git a/data/1.29/version.toml b/data/1.29/version.toml new file mode 100644 index 0000000..13c8e3f --- /dev/null +++ b/data/1.29/version.toml @@ -0,0 +1,3 @@ +number = "1.29" +gh_milestone_id = 53 +blog_post_path = "2018/09/13/Rust-1.29.html" diff --git a/data/1.3/version.toml b/data/1.3/version.toml new file mode 100644 index 0000000..2a7984e --- /dev/null +++ b/data/1.3/version.toml @@ -0,0 +1,2 @@ +number = "1.3" +blog_post_path = "2015/09/17/Rust-1.3.html" diff --git a/data/1.30/attr_literals.md b/data/1.30/attr_literals.md new file mode 100644 index 0000000..e8f82e6 --- /dev/null +++ b/data/1.30/attr_literals.md @@ -0,0 +1,5 @@ ++++ +title = "non-string literals in attribute lists and values of key-value pairs" +flag = "attr_literals" +tracking_issue_id = 34981 ++++ diff --git a/data/1.30/crate_in_paths.md b/data/1.30/crate_in_paths.md new file mode 100644 index 0000000..b182811 --- /dev/null +++ b/data/1.30/crate_in_paths.md @@ -0,0 +1,5 @@ ++++ +title = "`crate` in paths" +flag = "crate_in_paths" +tracking_issue_id = 45477 ++++ diff --git a/data/1.30/extern_absolute_paths.md b/data/1.30/extern_absolute_paths.md new file mode 100644 index 0000000..bbb2386 --- /dev/null +++ b/data/1.30/extern_absolute_paths.md @@ -0,0 +1,5 @@ ++++ +title = "absolute paths as paths from other crates" +flag = "extern_absolute_paths" +tracking_issue_id = 44660 ++++ diff --git a/data/1.30/infer_outlives_requirements.md b/data/1.30/infer_outlives_requirements.md new file mode 100644 index 0000000..fb61c78 --- /dev/null +++ b/data/1.30/infer_outlives_requirements.md @@ -0,0 +1,6 @@ ++++ +title = "outlives requirement inference" +flag = "infer_outlives_requirements" +rfc_id = 2093 +tracking_issue_id = 44493 ++++ diff --git a/data/1.30/macro_vis_matcher.md b/data/1.30/macro_vis_matcher.md new file mode 100644 index 0000000..3d494da --- /dev/null +++ b/data/1.30/macro_vis_matcher.md @@ -0,0 +1,5 @@ ++++ +title = "the `vis` fragment specifier in `macro_rules!`" +flag = "macro_vis_matcher" +tracking_issue_id = 41022 ++++ diff --git a/data/1.30/non_modrs_mods.md b/data/1.30/non_modrs_mods.md new file mode 100644 index 0000000..84b1574 --- /dev/null +++ b/data/1.30/non_modrs_mods.md @@ -0,0 +1,5 @@ ++++ +title = "`foo.rs` as an alternative to `foo/mod.rs`" +flag = "non_modrs_mods" +tracking_issue_id = 44660 ++++ diff --git a/data/1.30/panic_handler.md b/data/1.30/panic_handler.md new file mode 100644 index 0000000..ac77177 --- /dev/null +++ b/data/1.30/panic_handler.md @@ -0,0 +1,5 @@ ++++ +title = "`#[panic_handler]`" +flag = "panic_handler" +tracking_issue_id = 44489 ++++ diff --git a/data/1.30/proc_macro_path_invoc.md b/data/1.30/proc_macro_path_invoc.md new file mode 100644 index 0000000..6c5cd83 --- /dev/null +++ b/data/1.30/proc_macro_path_invoc.md @@ -0,0 +1,5 @@ ++++ +title = "multi-segment paths in attributes and derives" +flag = "proc_macro_path_invoc" +tracking_issue_id = 38356 ++++ diff --git a/data/1.30/raw_identifiers.md b/data/1.30/raw_identifiers.md new file mode 100644 index 0000000..b0a0cf7 --- /dev/null +++ b/data/1.30/raw_identifiers.md @@ -0,0 +1,6 @@ ++++ +title = "raw identifiers (`r#keyword`)" +flag = "raw_identifiers" +tracking_issue_id = 48589 +edition_guide_path = "rust-2018/module-system/raw-identifiers.html" ++++ diff --git a/data/1.30/tool_attributes.md b/data/1.30/tool_attributes.md new file mode 100644 index 0000000..3e33462 --- /dev/null +++ b/data/1.30/tool_attributes.md @@ -0,0 +1,5 @@ ++++ +title = "tool-scoped attributes" +flag = "tool_attributes" +tracking_issue_id = 44690 ++++ diff --git a/data/1.30/use_extern_macro.md b/data/1.30/use_extern_macro.md new file mode 100644 index 0000000..4403796 --- /dev/null +++ b/data/1.30/use_extern_macro.md @@ -0,0 +1,5 @@ ++++ +title = "macro imports and reexports via the module system" +flag = "use_extern_macro" +tracking_issue_id = 35896 ++++ diff --git a/data/1.30/used.md b/data/1.30/used.md new file mode 100644 index 0000000..2bfe2f6 --- /dev/null +++ b/data/1.30/used.md @@ -0,0 +1,5 @@ ++++ +title = "`#[used]`" +flag = "used" +tracking_issue_id = 40289 ++++ diff --git a/data/1.30/version.toml b/data/1.30/version.toml new file mode 100644 index 0000000..7caea5a --- /dev/null +++ b/data/1.30/version.toml @@ -0,0 +1,3 @@ +number = "1.30" +gh_milestone_id = 57 +blog_post_path = "2018/10/25/Rust-1.30.0.html" diff --git a/data/1.31/edition_2018.md b/data/1.31/edition_2018.md new file mode 100644 index 0000000..e87c6e8 --- /dev/null +++ b/data/1.31/edition_2018.md @@ -0,0 +1,4 @@ ++++ +title = "the 2018 edition" +stabilization_pr_id = 54057 ++++ diff --git a/data/1.31/extern_crate_item_prelude.md b/data/1.31/extern_crate_item_prelude.md new file mode 100644 index 0000000..b68be63 --- /dev/null +++ b/data/1.31/extern_crate_item_prelude.md @@ -0,0 +1,5 @@ ++++ +title = "`extern crate foo as bar;`" +flag = "extern_crate_item_prelude" +tracking_issue_id = 55599 ++++ diff --git a/data/1.31/impl_header_lifetime_elision.md b/data/1.31/impl_header_lifetime_elision.md new file mode 100644 index 0000000..d55a998 --- /dev/null +++ b/data/1.31/impl_header_lifetime_elision.md @@ -0,0 +1,7 @@ ++++ +title = "lifetime elision in `impl` headers" +flag = "impl_header_lifetime_elision" +tracking_issue_id = 15872 +stabilization_pr_id = 54778 +edition_guide_path = "rust-2018/ownership-and-lifetimes/lifetime-elision-in-impl.html" ++++ diff --git a/data/1.31/min_const_fn.md b/data/1.31/min_const_fn.md new file mode 100644 index 0000000..ebc6963 --- /dev/null +++ b/data/1.31/min_const_fn.md @@ -0,0 +1,7 @@ ++++ +title = "`const fn`" +flag = "min_const_fn" +rfc_id = 911 +tracking_issue_id = 53555 +stabilization_pr_id = 54835 ++++ diff --git a/data/1.31/pattern_parentheses.md b/data/1.31/pattern_parentheses.md new file mode 100644 index 0000000..94a68f9 --- /dev/null +++ b/data/1.31/pattern_parentheses.md @@ -0,0 +1,5 @@ ++++ +title = "parentheses in patterns" +flag = "pattern_parentheses" +tracking_issue_id = 51087 ++++ diff --git a/data/1.31/tool_lints.md b/data/1.31/tool_lints.md new file mode 100644 index 0000000..2fbf8b8 --- /dev/null +++ b/data/1.31/tool_lints.md @@ -0,0 +1,12 @@ ++++ +title = "scoped lints" +flag = "tool_lints" +tracking_issue_id = 44690 +stabilization_pr_id = 54870 +items = [ + "#[allow(tool::lint)]", + "#[warn(tool::lint)]", + "#[deny(tool::lint)]", + "#[forbid(tool::lint)]", +] ++++ diff --git a/data/1.31/version.toml b/data/1.31/version.toml new file mode 100644 index 0000000..7551204 --- /dev/null +++ b/data/1.31/version.toml @@ -0,0 +1,3 @@ +number = "1.31" +gh_milestone_id = 58 +blog_post_path = "2018/12/06/Rust-1.31-and-rust-2018.html" diff --git a/data/1.32/boxed_slice_from_iter.md b/data/1.32/boxed_slice_from_iter.md new file mode 100644 index 0000000..a60ad6f --- /dev/null +++ b/data/1.32/boxed_slice_from_iter.md @@ -0,0 +1,5 @@ ++++ +title = "`FromIterator` implementation for `Box<[T]>`" +flag = "boxed_slice_from_iter" +impl_pr_id = 55843 ++++ diff --git a/data/1.32/const_cell_as_ptr.md b/data/1.32/const_cell_as_ptr.md new file mode 100644 index 0000000..e93dc6a --- /dev/null +++ b/data/1.32/const_cell_as_ptr.md @@ -0,0 +1,3 @@ ++++ +title = "`Cell::as_ptr` as `const fn`" ++++ diff --git a/data/1.32/const_char_is_ascii.md b/data/1.32/const_char_is_ascii.md new file mode 100644 index 0000000..ab98e75 --- /dev/null +++ b/data/1.32/const_char_is_ascii.md @@ -0,0 +1,3 @@ ++++ +title = "`char::is_ascii` as `const fn`" ++++ diff --git a/data/1.32/const_cstr_as_ptr.md b/data/1.32/const_cstr_as_ptr.md new file mode 100644 index 0000000..583e277 --- /dev/null +++ b/data/1.32/const_cstr_as_ptr.md @@ -0,0 +1,3 @@ ++++ +title = "`CStr::as_ptr` as `const fn`" ++++ diff --git a/data/1.32/const_duration_as_secs.md b/data/1.32/const_duration_as_secs.md new file mode 100644 index 0000000..a30a971 --- /dev/null +++ b/data/1.32/const_duration_as_secs.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::as_secs` as `const fn`" ++++ diff --git a/data/1.32/const_duration_subsec_micros.md b/data/1.32/const_duration_subsec_micros.md new file mode 100644 index 0000000..2316820 --- /dev/null +++ b/data/1.32/const_duration_subsec_micros.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::subsec_micros` as `const fn`" ++++ diff --git a/data/1.32/const_duration_subsec_millis.md b/data/1.32/const_duration_subsec_millis.md new file mode 100644 index 0000000..65143ad --- /dev/null +++ b/data/1.32/const_duration_subsec_millis.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::subsec_millis` as `const fn`" ++++ diff --git a/data/1.32/const_duration_subsec_nanos.md b/data/1.32/const_duration_subsec_nanos.md new file mode 100644 index 0000000..d2010ff --- /dev/null +++ b/data/1.32/const_duration_subsec_nanos.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::subsec_nanos` as `const fn`" ++++ diff --git a/data/1.32/const_ipv4addr_is_unspecified.md b/data/1.32/const_ipv4addr_is_unspecified.md new file mode 100644 index 0000000..98ee29b --- /dev/null +++ b/data/1.32/const_ipv4addr_is_unspecified.md @@ -0,0 +1,3 @@ ++++ +title = "`Ipv4Addr::is_unspecified` as `const fn`" ++++ diff --git a/data/1.32/const_ipv6addr_new.md b/data/1.32/const_ipv6addr_new.md new file mode 100644 index 0000000..f314d85 --- /dev/null +++ b/data/1.32/const_ipv6addr_new.md @@ -0,0 +1,3 @@ ++++ +title = "`Ipv6Addr::new` as `const fn`" ++++ diff --git a/data/1.32/const_ipv6addr_octets.md b/data/1.32/const_ipv6addr_octets.md new file mode 100644 index 0000000..03cd02a --- /dev/null +++ b/data/1.32/const_ipv6addr_octets.md @@ -0,0 +1,3 @@ ++++ +title = "`Ipv6Addr::octets` as `const fn`" ++++ diff --git a/data/1.32/const_iter_empty.md b/data/1.32/const_iter_empty.md new file mode 100644 index 0000000..e0bc79e --- /dev/null +++ b/data/1.32/const_iter_empty.md @@ -0,0 +1,3 @@ ++++ +title = "`iter::empty` as `const fn`" ++++ diff --git a/data/1.32/const_manually_drop_into_inner.md b/data/1.32/const_manually_drop_into_inner.md new file mode 100644 index 0000000..a76d8eb --- /dev/null +++ b/data/1.32/const_manually_drop_into_inner.md @@ -0,0 +1,3 @@ ++++ +title = "`ManuallyDrop::into_inner` as `const fn`" ++++ diff --git a/data/1.32/const_manually_drop_new.md b/data/1.32/const_manually_drop_new.md new file mode 100644 index 0000000..16ca6df --- /dev/null +++ b/data/1.32/const_manually_drop_new.md @@ -0,0 +1,3 @@ ++++ +title = "`ManuallyDrop::new` as `const fn`" ++++ diff --git a/data/1.32/const_non_null_as_ptr.md b/data/1.32/const_non_null_as_ptr.md new file mode 100644 index 0000000..01cc556 --- /dev/null +++ b/data/1.32/const_non_null_as_ptr.md @@ -0,0 +1,3 @@ ++++ +title = "`NonNull::as_ptr` as `const fn`" ++++ diff --git a/data/1.32/const_range_inclusive_end.md b/data/1.32/const_range_inclusive_end.md new file mode 100644 index 0000000..445b902 --- /dev/null +++ b/data/1.32/const_range_inclusive_end.md @@ -0,0 +1,3 @@ ++++ +title = "`RangeInclusive::end` as `const fn`" ++++ diff --git a/data/1.32/const_range_inclusive_start.md b/data/1.32/const_range_inclusive_start.md new file mode 100644 index 0000000..11305ee --- /dev/null +++ b/data/1.32/const_range_inclusive_start.md @@ -0,0 +1,3 @@ ++++ +title = "`RangeInclusive::start` as `const fn`" ++++ diff --git a/data/1.32/const_slice_as_ptr.md b/data/1.32/const_slice_as_ptr.md new file mode 100644 index 0000000..a1c6648 --- /dev/null +++ b/data/1.32/const_slice_as_ptr.md @@ -0,0 +1,3 @@ ++++ +title = "`slice::as_ptr` as `const fn`" ++++ diff --git a/data/1.32/const_str_as_ptr.md b/data/1.32/const_str_as_ptr.md new file mode 100644 index 0000000..43fb61c --- /dev/null +++ b/data/1.32/const_str_as_ptr.md @@ -0,0 +1,3 @@ ++++ +title = "`str::as_ptr` as `const fn`" ++++ diff --git a/data/1.32/const_unsafe_cell_get.md b/data/1.32/const_unsafe_cell_get.md new file mode 100644 index 0000000..788b518 --- /dev/null +++ b/data/1.32/const_unsafe_cell_get.md @@ -0,0 +1,3 @@ ++++ +title = "`UnsafeCell::get` as `const fn`" ++++ diff --git a/data/1.32/dbg_macro.md b/data/1.32/dbg_macro.md new file mode 100644 index 0000000..728c6fa --- /dev/null +++ b/data/1.32/dbg_macro.md @@ -0,0 +1,8 @@ ++++ +title = "`dbg!`" +flag = "dbg_macro" +rfc_id = 2361 +impl_pr_id = 54317 +tracking_issue_id = 54306 +stabilization_pr_id = 56395 ++++ diff --git a/data/1.32/int_to_from_bytes.md b/data/1.32/int_to_from_bytes.md new file mode 100644 index 0000000..6915d07 --- /dev/null +++ b/data/1.32/int_to_from_bytes.md @@ -0,0 +1,41 @@ ++++ +title = "integer ↔ bytes conversion" +flag = "int_to_from_bytes" +items = [ + "i8::to_ne_bytes", "i8::to_le_bytes", "i8::to_be_bytes", + "i8::from_ne_bytes", "i8::from_le_bytes", "i8::from_be_bytes", + + "i16::to_ne_bytes", "i16::to_le_bytes", "i16::to_be_bytes", + "i16::from_ne_bytes", "i16::from_le_bytes", "i16::from_be_bytes", + + "i32::to_ne_bytes", "i32::to_le_bytes", "i32::to_be_bytes", + "i32::from_ne_bytes", "i32::from_le_bytes", "i32::from_be_bytes", + + "i64::to_ne_bytes", "i64::to_le_bytes", "i64::to_be_bytes", + "i64::from_ne_bytes", "i64::from_le_bytes", "i64::from_be_bytes", + + "i128::to_ne_bytes", "i128::to_le_bytes", "i128::to_be_bytes", + "i128::from_ne_bytes", "i128::from_le_bytes", "i128::from_be_bytes", + + "isize::to_ne_bytes", "isize::to_le_bytes", "isize::to_be_bytes", + "isize::from_ne_bytes", "isize::from_le_bytes", "isize::from_be_bytes", + + "u8::to_ne_bytes", "u8::to_le_bytes", "u8::to_be_bytes", + "u8::from_ne_bytes", "u8::from_le_bytes", "u8::from_be_bytes", + + "u16::to_ne_bytes", "u16::to_le_bytes", "u16::to_be_bytes", + "u16::from_ne_bytes", "u16::from_le_bytes", "u16::from_be_bytes", + + "u32::to_ne_bytes", "u32::to_le_bytes", "u32::to_be_bytes", + "u32::from_ne_bytes", "u32::from_le_bytes", "u32::from_be_bytes", + + "u64::to_ne_bytes", "u64::to_le_bytes", "u64::to_be_bytes", + "u64::from_ne_bytes", "u64::from_le_bytes", "u64::from_be_bytes", + + "u128::to_ne_bytes", "u128::to_le_bytes", "u128::to_be_bytes", + "u128::from_ne_bytes", "u128::from_le_bytes", "u128::from_be_bytes", + + "usize::to_ne_bytes", "usize::to_le_bytes", "usize::to_be_bytes", + "usize::from_ne_bytes", "usize::from_le_bytes", "usize::from_be_bytes", +] ++++ diff --git a/data/1.32/macro_at_most_once_rep.md b/data/1.32/macro_at_most_once_rep.md new file mode 100644 index 0000000..9ce94eb --- /dev/null +++ b/data/1.32/macro_at_most_once_rep.md @@ -0,0 +1,8 @@ ++++ +title = "`?` as the Kleene \"at most one\" operator in `macro_rules!` in the 2018 edition" +flag = "macro_at_most_once_rep" +rfc_id = 2298 +tracking_issue_id = 48075 +stabilization_pr_id = 56245 +edition_guide_path = "rust-2018/macros/at-most-once.html" ++++ diff --git a/data/1.32/macro_literal_matcher.md b/data/1.32/macro_literal_matcher.md new file mode 100644 index 0000000..61cbed9 --- /dev/null +++ b/data/1.32/macro_literal_matcher.md @@ -0,0 +1,7 @@ ++++ +title = "the `literal` fragment specifier in `macro_rules!`" +flag = "macro_literal_matcher" +rfc_id = 1576 +tracking_issue_id = 35625 +stabilization_pr_id = 56072 ++++ diff --git a/data/1.32/must_use_traits.md b/data/1.32/must_use_traits.md new file mode 100644 index 0000000..d708138 --- /dev/null +++ b/data/1.32/must_use_traits.md @@ -0,0 +1,4 @@ ++++ +title = "`#[must_use]` on traits" +impl_pr_id = 55663 ++++ diff --git a/data/1.32/path_from_str.md b/data/1.32/path_from_str.md new file mode 100644 index 0000000..3932778 --- /dev/null +++ b/data/1.32/path_from_str.md @@ -0,0 +1,5 @@ ++++ +title = "`FromStr` implementation for `PathBuf`" +flag = "path_from_str" +impl_pr_id = 55148 ++++ diff --git a/data/1.32/self_in_typedefs.md b/data/1.32/self_in_typedefs.md new file mode 100644 index 0000000..dadee2b --- /dev/null +++ b/data/1.32/self_in_typedefs.md @@ -0,0 +1,7 @@ ++++ +title = "`Self` in type definitions" +flag = "self_in_typedefs" +rfc_id = 2300 +tracking_issue_id = 49303 +stabilization_pr_id = 56366 ++++ diff --git a/data/1.32/self_struct_ctor.md b/data/1.32/self_struct_ctor.md new file mode 100644 index 0000000..f3cfd90 --- /dev/null +++ b/data/1.32/self_struct_ctor.md @@ -0,0 +1,7 @@ ++++ +title = "`Self` as a constructor and pattern for unit and tuple structs" +flag = "self_struct_ctor" +rfc_id = 2302 +tracking_issue_id = 51994 +stabilization_pr_id = 56365 ++++ diff --git a/data/1.32/uniform_paths.md b/data/1.32/uniform_paths.md new file mode 100644 index 0000000..9e6bf91 --- /dev/null +++ b/data/1.32/uniform_paths.md @@ -0,0 +1,6 @@ ++++ +title = "uniform paths (`use x::y;` as `use self::x::y;`) in the 2018 edition" +flag = "uniform_paths" +tracking_issue_id = 53130 +stabilization_pr_id = 56759 ++++ diff --git a/data/1.32/version.toml b/data/1.32/version.toml new file mode 100644 index 0000000..dc1c85d --- /dev/null +++ b/data/1.32/version.toml @@ -0,0 +1,3 @@ +number = "1.32" +gh_milestone_id = 63 +blog_post_path = "2019/01/17/Rust-1.32.0.html" diff --git a/data/1.33/cfg_attr_multi.md b/data/1.33/cfg_attr_multi.md new file mode 100644 index 0000000..45a1acf --- /dev/null +++ b/data/1.33/cfg_attr_multi.md @@ -0,0 +1,8 @@ ++++ +title = "`#[cfg_attr(cfg, attr1, attr2, attr3)]`" +flag = "cfg_attr_multi" +rfc_id = 2539 +impl_pr_id = 54862 +tracking_issue_id = 54881 +stabilization_pr_id = 57332 ++++ diff --git a/data/1.33/cfg_target_vendor.md b/data/1.33/cfg_target_vendor.md new file mode 100644 index 0000000..cb1e46e --- /dev/null +++ b/data/1.33/cfg_target_vendor.md @@ -0,0 +1,7 @@ ++++ +title = "`cfg(target_vendor)`" +flag = "cfg_target_vendor" +impl_pr_id = 28612 +tracking_issue_id = 29718 +stabilization_pr_id = 57465 ++++ diff --git a/data/1.33/const_ip.md b/data/1.33/const_ip.md new file mode 100644 index 0000000..2ce3898 --- /dev/null +++ b/data/1.33/const_ip.md @@ -0,0 +1,5 @@ ++++ +title = "`Ipv4Addr::new` as `const fn`" +flag = "const_ip" +stabilization_pr_id = 57234 ++++ diff --git a/data/1.33/const_let.md b/data/1.33/const_let.md new file mode 100644 index 0000000..a6c96a2 --- /dev/null +++ b/data/1.33/const_let.md @@ -0,0 +1,7 @@ ++++ +title = "let bindings, assignments and destructuring in `const fn`" +flag = "const_let" +rfc_id = 2341 +tracking_issue_id = 48821 +stabilization_pr_id = 57175 ++++ diff --git a/data/1.33/exhaustive_integer_patterns.md b/data/1.33/exhaustive_integer_patterns.md new file mode 100644 index 0000000..4390c7f --- /dev/null +++ b/data/1.33/exhaustive_integer_patterns.md @@ -0,0 +1,6 @@ ++++ +title = "integer match exhaustiveness checking" +flag = "exhaustive_integer_patterns" +rfc_id = 2591 +tracking_issue_id = 50907 ++++ diff --git a/data/1.33/if_while_or_patterns.md b/data/1.33/if_while_or_patterns.md new file mode 100644 index 0000000..51f643c --- /dev/null +++ b/data/1.33/if_while_or_patterns.md @@ -0,0 +1,7 @@ ++++ +title = "or-patterns in `if let` and `while let`" +flag = "if_while_or_patterns" +rfc_id = 2175 +tracking_issue_id = 48215 +stabilization_pr_id = 57532 ++++ diff --git a/data/1.33/irrefutable_let_patterns.md b/data/1.33/irrefutable_let_patterns.md new file mode 100644 index 0000000..cff8da2 --- /dev/null +++ b/data/1.33/irrefutable_let_patterns.md @@ -0,0 +1,8 @@ ++++ +title = "irrefutable patterns in `if let` and `while let`" +flag = "irrefutable_let_patterns" +rfc_id = 2086 +impl_pr_id = 49469 +tracking_issue_id = 44495 +stabilization_pr_id = 57535 ++++ diff --git a/data/1.33/min_const_unsafe_fn.md b/data/1.33/min_const_unsafe_fn.md new file mode 100644 index 0000000..5384de1 --- /dev/null +++ b/data/1.33/min_const_unsafe_fn.md @@ -0,0 +1,6 @@ ++++ +title = "`const unsafe fn`s inside `unsafe` blocks in `const fn`" +flag = "min_const_unsafe_fn" +tracking_issue_id = 55607 +stabilization_pr_id = 57067 ++++ diff --git a/data/1.33/phantom_unpinned.md b/data/1.33/phantom_unpinned.md new file mode 100644 index 0000000..b091a1b --- /dev/null +++ b/data/1.33/phantom_unpinned.md @@ -0,0 +1,4 @@ ++++ +title = "`marker::PhantomUnpinned`" +flag = "pin" ++++ diff --git a/data/1.33/pin.md b/data/1.33/pin.md new file mode 100644 index 0000000..6d80380 --- /dev/null +++ b/data/1.33/pin.md @@ -0,0 +1,4 @@ ++++ +title = "`pin::Pin`" +flag = "pin" ++++ diff --git a/data/1.33/rc_arc_pin_method_receiver.md b/data/1.33/rc_arc_pin_method_receiver.md new file mode 100644 index 0000000..69a55bc --- /dev/null +++ b/data/1.33/rc_arc_pin_method_receiver.md @@ -0,0 +1,4 @@ ++++ +title = "`Rc`, `Arc` or `Pin` as a method receiver" +stabilization_pr_id = 56805 ++++ diff --git a/data/1.33/repr_packed.md b/data/1.33/repr_packed.md new file mode 100644 index 0000000..05ce2fd --- /dev/null +++ b/data/1.33/repr_packed.md @@ -0,0 +1,7 @@ ++++ +title = "`#[repr(packed(N))]` on structs" +flag = "repr_packed" +rfc_id = 1399 +tracking_issue_id = 33158 +stabilization_pr_id = 57049 ++++ diff --git a/data/1.33/underscore_imports.md b/data/1.33/underscore_imports.md new file mode 100644 index 0000000..57a5798 --- /dev/null +++ b/data/1.33/underscore_imports.md @@ -0,0 +1,11 @@ ++++ +title = "underscore imports (impl-only trait imports)" +flag = "underscore_imports" +rfc_id = 2166 +tracking_issue_id = 48216 +stabilization_pr_id = 56303 +items = [ + "extern crate c as _;", + "use path as _;", +] ++++ diff --git a/data/1.33/unpin.md b/data/1.33/unpin.md new file mode 100644 index 0000000..e40d901 --- /dev/null +++ b/data/1.33/unpin.md @@ -0,0 +1,4 @@ ++++ +title = "`marker::Unpin`" +flag = "pin" ++++ diff --git a/data/1.33/version.toml b/data/1.33/version.toml new file mode 100644 index 0000000..9170e89 --- /dev/null +++ b/data/1.33/version.toml @@ -0,0 +1,3 @@ +number = "1.33" +gh_milestone_id = 59 +blog_post_path = "2019/02/28/Rust-1.33.0.html" diff --git a/data/1.34/alternative_registries.md b/data/1.34/alternative_registries.md new file mode 100644 index 0000000..f901175 --- /dev/null +++ b/data/1.34/alternative_registries.md @@ -0,0 +1,3 @@ ++++ +title = "alternative registries to crates.io in cargo" ++++ diff --git a/data/1.34/const_overflowing_neg.md b/data/1.34/const_overflowing_neg.md new file mode 100644 index 0000000..0b33a8b --- /dev/null +++ b/data/1.34/const_overflowing_neg.md @@ -0,0 +1,18 @@ ++++ +title = "`overflowing_neg` as `const fn`" +impl_pr_id = 58044 +items = [ + "i8::overflowing_neg", + "i16::overflowing_neg", + "i32::overflowing_neg", + "i64::overflowing_neg", + "i128::overflowing_neg", + "isize::overflowing_neg", + "u8::overflowing_neg", + "u16::overflowing_neg", + "u32::overflowing_neg", + "u64::overflowing_neg", + "u128::overflowing_neg", + "usize::overflowing_neg", +] ++++ diff --git a/data/1.34/const_wrapping_neg.md b/data/1.34/const_wrapping_neg.md new file mode 100644 index 0000000..720063b --- /dev/null +++ b/data/1.34/const_wrapping_neg.md @@ -0,0 +1,18 @@ ++++ +title = "`wrapping_neg` as `const fn`" +impl_pr_id = 58044 +items = [ + "i8::wrapping_neg", + "i16::wrapping_neg", + "i32::wrapping_neg", + "i64::wrapping_neg", + "i128::wrapping_neg", + "isize::wrapping_neg", + "u8::wrapping_neg", + "u16::wrapping_neg", + "u32::wrapping_neg", + "u64::wrapping_neg", + "u128::wrapping_neg", + "usize::wrapping_neg", +] ++++ diff --git a/data/1.34/deprecated_equals_reason.md b/data/1.34/deprecated_equals_reason.md new file mode 100644 index 0000000..9e71355 --- /dev/null +++ b/data/1.34/deprecated_equals_reason.md @@ -0,0 +1,3 @@ ++++ +title = "`#[deprecated = \"reason\"]` as a shorthand for `#[deprecated(note = \"reason\")]`" ++++ diff --git a/data/1.34/extern_crate_self.md b/data/1.34/extern_crate_self.md new file mode 100644 index 0000000..4c9adfb --- /dev/null +++ b/data/1.34/extern_crate_self.md @@ -0,0 +1,6 @@ ++++ +title = "`extern crate self as foo;`" +flag = "extern_crate_self" +tracking_issue_id = 56409 +stabilization_pr_id = 57407 ++++ diff --git a/data/1.34/unrestricted_attribute_tokens.md b/data/1.34/unrestricted_attribute_tokens.md new file mode 100644 index 0000000..5958643 --- /dev/null +++ b/data/1.34/unrestricted_attribute_tokens.md @@ -0,0 +1,10 @@ ++++ +title = "arbitrary token streams in procedural attribute macros" +flag = "unrestricted_attribute_tokens" +tracking_issue_id = 55208 +items = [ + "#[attr{...}]", + "#[attr[...]]", + "#[attr(...)]", +] ++++ diff --git a/data/1.34/version.toml b/data/1.34/version.toml new file mode 100644 index 0000000..94d707f --- /dev/null +++ b/data/1.34/version.toml @@ -0,0 +1,3 @@ +number = "1.34" +gh_milestone_id = 60 +blog_post_path = "2019/04/11/Rust-1.34.0.html" diff --git a/data/1.35/alloc_system_default.md b/data/1.35/alloc_system_default.md new file mode 100644 index 0000000..e0c8c2b --- /dev/null +++ b/data/1.35/alloc_system_default.md @@ -0,0 +1,4 @@ ++++ +title = "`Default` implementation for `alloc::System`" +impl_pr_id = 59451 ++++ diff --git a/data/1.35/asraw_stdio_locks.md b/data/1.35/asraw_stdio_locks.md new file mode 100644 index 0000000..8d0bdfa --- /dev/null +++ b/data/1.35/asraw_stdio_locks.md @@ -0,0 +1,5 @@ ++++ +title = "`AsRawFd` implementation for `StdinLock`, `StdoutLock` and `StderrLock`" +flag = "asraw_stdio_locks" +impl_pr_id = 59512 ++++ diff --git a/data/1.35/boxed_closure_impls.md b/data/1.35/boxed_closure_impls.md new file mode 100644 index 0000000..8818ca8 --- /dev/null +++ b/data/1.35/boxed_closure_impls.md @@ -0,0 +1,10 @@ ++++ +title = "boxed closure `Fn*` trait implementations" +flag = "boxed_closure_impls" +impl_pr_id = 59500 +items = [ + "impl FnOnce for Box where F: FnOnce + ?Sized", + "impl FnMut for Box where F: FnMut + ?Sized", + "impl Fn for Box where F: Fn + ?Sized", +] ++++ diff --git a/data/1.35/coerce_closure_to_unsafe_fn_ptr.md b/data/1.35/coerce_closure_to_unsafe_fn_ptr.md new file mode 100644 index 0000000..b637b98 --- /dev/null +++ b/data/1.35/coerce_closure_to_unsafe_fn_ptr.md @@ -0,0 +1,4 @@ ++++ +title = "closure to unsafe function pointer coercions" +impl_pr_id = 59580 ++++ diff --git a/data/1.35/dbg_no_args.md b/data/1.35/dbg_no_args.md new file mode 100644 index 0000000..535901b --- /dev/null +++ b/data/1.35/dbg_no_args.md @@ -0,0 +1,4 @@ ++++ +title = "`dbg!` without arguments" +impl_pr_id = 57847 ++++ diff --git a/data/1.35/exact_size_case_mapping_iter.md b/data/1.35/exact_size_case_mapping_iter.md new file mode 100644 index 0000000..f6d28ec --- /dev/null +++ b/data/1.35/exact_size_case_mapping_iter.md @@ -0,0 +1,5 @@ ++++ +title = "`ExactSizeIterator` implementation for `ToLowercase` and `ToUppercase`" +flag = "exact_size_case_mapping_iter" +impl_pr_id = 58778 ++++ diff --git a/data/1.35/version.toml b/data/1.35/version.toml new file mode 100644 index 0000000..e18bbdd --- /dev/null +++ b/data/1.35/version.toml @@ -0,0 +1,3 @@ +number = "1.35" +gh_milestone_id = 61 +blog_post_path = "2019/05/23/Rust-1.35.0.html" diff --git a/data/1.36/alloc.md b/data/1.36/alloc.md new file mode 100644 index 0000000..b261c8b --- /dev/null +++ b/data/1.36/alloc.md @@ -0,0 +1,5 @@ ++++ +title = "the `alloc` crate" +flag = "alloc" +stabilization_pr_id = 59675 ++++ diff --git a/data/1.36/const_layout_from_size_align_unchecked.md b/data/1.36/const_layout_from_size_align_unchecked.md new file mode 100644 index 0000000..f29181b --- /dev/null +++ b/data/1.36/const_layout_from_size_align_unchecked.md @@ -0,0 +1,4 @@ ++++ +title = "`alloc::Layout::from_size_align_unchecked` as `const fn`" +impl_pr_id = 60370 ++++ diff --git a/data/1.36/const_needs_drop.md b/data/1.36/const_needs_drop.md new file mode 100644 index 0000000..8989db0 --- /dev/null +++ b/data/1.36/const_needs_drop.md @@ -0,0 +1,5 @@ ++++ +title = "`mem::needs_drop` as `const fn`" +flag = "const_needs_drop" +stabilization_pr_id = 60364 ++++ diff --git a/data/1.36/const_nonnull_cast.md b/data/1.36/const_nonnull_cast.md new file mode 100644 index 0000000..7767774 --- /dev/null +++ b/data/1.36/const_nonnull_cast.md @@ -0,0 +1,4 @@ ++++ +title = "`NonNull::cast` as `const fn`" +impl_pr_id = 60244 ++++ diff --git a/data/1.36/const_nonnull_dangling.md b/data/1.36/const_nonnull_dangling.md new file mode 100644 index 0000000..2be10a6 --- /dev/null +++ b/data/1.36/const_nonnull_dangling.md @@ -0,0 +1,4 @@ ++++ +title = "`NonNull::dangling` as `const fn`" +impl_pr_id = 60244 ++++ diff --git a/data/1.36/dbg_multiple_args.md b/data/1.36/dbg_multiple_args.md new file mode 100644 index 0000000..47fca37 --- /dev/null +++ b/data/1.36/dbg_multiple_args.md @@ -0,0 +1,4 @@ ++++ +title = "multiple arguments in `dbg!` macro invocations" +impl_pr_id = 59826 ++++ diff --git a/data/1.36/hashbrown.md b/data/1.36/hashbrown.md new file mode 100644 index 0000000..706c3e3 --- /dev/null +++ b/data/1.36/hashbrown.md @@ -0,0 +1,4 @@ ++++ +title = "`hashbrown::HashMap` as the implementation of `HashMap`" +impl_pr_id = 58623 ++++ diff --git a/data/1.36/io_cursor_default.md b/data/1.36/io_cursor_default.md new file mode 100644 index 0000000..fd11350 --- /dev/null +++ b/data/1.36/io_cursor_default.md @@ -0,0 +1,4 @@ ++++ +title = "`Default` implementation for `io::Cursor`" +impl_pr_id = 60234 ++++ diff --git a/data/1.36/nll_2015.md b/data/1.36/nll_2015.md new file mode 100644 index 0000000..2193063 --- /dev/null +++ b/data/1.36/nll_2015.md @@ -0,0 +1,4 @@ ++++ +title = "Non-Lexical Lifetimes (NLL) on the 2015 edition" +impl_pr_id = 59114 ++++ diff --git a/data/1.36/string_borrow_mut_str.md b/data/1.36/string_borrow_mut_str.md new file mode 100644 index 0000000..df4c7fa --- /dev/null +++ b/data/1.36/string_borrow_mut_str.md @@ -0,0 +1,4 @@ ++++ +title = "`BorrowMut` implementation for `String`" +impl_pr_id = 60404 ++++ diff --git a/data/1.36/string_from_string_ref.md b/data/1.36/string_from_string_ref.md new file mode 100644 index 0000000..4f6e8a1 --- /dev/null +++ b/data/1.36/string_from_string_ref.md @@ -0,0 +1,4 @@ ++++ +title = "`From<&String>` implementation for `String`" +impl_pr_id = 59825 ++++ diff --git a/data/1.36/version.toml b/data/1.36/version.toml new file mode 100644 index 0000000..1d9289d --- /dev/null +++ b/data/1.36/version.toml @@ -0,0 +1,3 @@ +number = "1.36" +gh_milestone_id = 62 +blog_post_path = "2019/07/04/Rust-1.36.0.html" diff --git a/data/1.37/copy_within.md b/data/1.37/copy_within.md new file mode 100644 index 0000000..9ecea34 --- /dev/null +++ b/data/1.37/copy_within.md @@ -0,0 +1,7 @@ ++++ +title = "`[T]::copy_within`" +flag = "copy_within" +impl_pr_id = 53652 +tracking_issue_id = 54236 +stabilization_pr_id = 61398 ++++ diff --git a/data/1.37/generic_param_cfg_attrs.md b/data/1.37/generic_param_cfg_attrs.md new file mode 100644 index 0000000..ffdf2ea --- /dev/null +++ b/data/1.37/generic_param_cfg_attrs.md @@ -0,0 +1,8 @@ ++++ +title = "conditional compilation of generic parameters" +impl_pr_id = 61547 +items = [ + "#[cfg(...)]", + "#[cfg_attr(...)]", +] ++++ diff --git a/data/1.37/kleene_op_2015.md b/data/1.37/kleene_op_2015.md new file mode 100644 index 0000000..51474cc --- /dev/null +++ b/data/1.37/kleene_op_2015.md @@ -0,0 +1,5 @@ ++++ +title = "the `?` Kleene macro operator in the 2015 edition" +impl_pr_id = 60932 +edition_guide_path = "rust-2018/macros/at-most-once.html" ++++ diff --git a/data/1.37/option_xor.md b/data/1.37/option_xor.md new file mode 100644 index 0000000..75185ef --- /dev/null +++ b/data/1.37/option_xor.md @@ -0,0 +1,3 @@ ++++ +title = "`Option::xor`" ++++ diff --git a/data/1.37/repr_align_enum.md b/data/1.37/repr_align_enum.md new file mode 100644 index 0000000..6214dcb --- /dev/null +++ b/data/1.37/repr_align_enum.md @@ -0,0 +1,7 @@ ++++ +title = "`#[repr(align(N)]` on enums" +flag = "repr_align_enum" +tracking_issue_id = 57996 +stabilization_pr_id = 61229 +edition_guide_path = "rust-2018/data-types/choosing-alignment-with-the-repr-attribute.html" ++++ diff --git a/data/1.37/reverse_bits.md b/data/1.37/reverse_bits.md new file mode 100644 index 0000000..b5c9bbf --- /dev/null +++ b/data/1.37/reverse_bits.md @@ -0,0 +1,22 @@ ++++ +title = "`reverse_bits` integer methods" +flag = "reverse_bits" +items = [ + "i8::reverse_bits", + "i16::reverse_bits", + "i32::reverse_bits", + "i64::reverse_bits", + "i128::reverse_bits", + "isize::reverse_bits", + "u8::reverse_bits", + "u16::reverse_bits", + "u32::reverse_bits", + "u64::reverse_bits", + "u128::reverse_bits", + "usize::reverse_bits", + "Wrapping::reverse_bits", +] +impl_pr_id = 48573 +tracking_issue_id = 48763 +stabilization_pr_id = 61364 ++++ diff --git a/data/1.37/type_alias_enum_variants.md b/data/1.37/type_alias_enum_variants.md new file mode 100644 index 0000000..4861895 --- /dev/null +++ b/data/1.37/type_alias_enum_variants.md @@ -0,0 +1,5 @@ ++++ +title = "enum variants through a type alias" +tracking_issue_id = 49683 +stabilization_pr_id = 61682 ++++ diff --git a/data/1.37/underscore_const_names.md b/data/1.37/underscore_const_names.md new file mode 100644 index 0000000..7bb79a2 --- /dev/null +++ b/data/1.37/underscore_const_names.md @@ -0,0 +1,5 @@ ++++ +title = "`_` as an identifier for constants" +flag = "underscore_const_names" +tracking_issue_id = 54912 ++++ diff --git a/data/1.37/version.toml b/data/1.37/version.toml new file mode 100644 index 0000000..26998cd --- /dev/null +++ b/data/1.37/version.toml @@ -0,0 +1,3 @@ +number = "1.37" +gh_milestone_id = 64 +blog_post_path = "2019/08/15/Rust-1.37.0.html" diff --git a/data/1.38/any_type_name.md b/data/1.38/any_type_name.md new file mode 100644 index 0000000..340cbda --- /dev/null +++ b/data/1.38/any_type_name.md @@ -0,0 +1,3 @@ ++++ +title = "`any::type_name`" ++++ diff --git a/data/1.38/ascii_escapedefault_clone.md b/data/1.38/ascii_escapedefault_clone.md new file mode 100644 index 0000000..47c509f --- /dev/null +++ b/data/1.38/ascii_escapedefault_clone.md @@ -0,0 +1,4 @@ ++++ +title = "`Clone` implementation for `ascii::EscapeDefault`" +impl_pr_id = 63421 ++++ diff --git a/data/1.38/ascii_escapedefault_display.md b/data/1.38/ascii_escapedefault_display.md new file mode 100644 index 0000000..35bb00e --- /dev/null +++ b/data/1.38/ascii_escapedefault_display.md @@ -0,0 +1,4 @@ ++++ +title = "`Display` implementation for `ascii::EscapeDefault`" +impl_pr_id = 63421 ++++ diff --git a/data/1.38/deprecated_macros.md b/data/1.38/deprecated_macros.md new file mode 100644 index 0000000..3103b14 --- /dev/null +++ b/data/1.38/deprecated_macros.md @@ -0,0 +1,4 @@ ++++ +title = "`#[deprecated]` on macros" +impl_pr_id = 62042 ++++ diff --git a/data/1.38/duration_as_secs_f32.md b/data/1.38/duration_as_secs_f32.md new file mode 100644 index 0000000..7ccf12b --- /dev/null +++ b/data/1.38/duration_as_secs_f32.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::as_secs_f32`" ++++ diff --git a/data/1.38/duration_as_secs_f64.md b/data/1.38/duration_as_secs_f64.md new file mode 100644 index 0000000..c16f533 --- /dev/null +++ b/data/1.38/duration_as_secs_f64.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::as_secs_f64`" ++++ diff --git a/data/1.38/duration_div_f32.md b/data/1.38/duration_div_f32.md new file mode 100644 index 0000000..116f738 --- /dev/null +++ b/data/1.38/duration_div_f32.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::div_f32`" ++++ diff --git a/data/1.38/duration_div_f64.md b/data/1.38/duration_div_f64.md new file mode 100644 index 0000000..4c58ccf --- /dev/null +++ b/data/1.38/duration_div_f64.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::div_f64`" ++++ diff --git a/data/1.38/duration_from_secs_f32.md b/data/1.38/duration_from_secs_f32.md new file mode 100644 index 0000000..2d62a0d --- /dev/null +++ b/data/1.38/duration_from_secs_f32.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::from_secs_f32`" ++++ diff --git a/data/1.38/duration_from_secs_f64.md b/data/1.38/duration_from_secs_f64.md new file mode 100644 index 0000000..26cdc23 --- /dev/null +++ b/data/1.38/duration_from_secs_f64.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::from_secs_f64`" ++++ diff --git a/data/1.38/duration_mul_f32.md b/data/1.38/duration_mul_f32.md new file mode 100644 index 0000000..0d17be8 --- /dev/null +++ b/data/1.38/duration_mul_f32.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::mul_f32`" ++++ diff --git a/data/1.38/duration_mul_f64.md b/data/1.38/duration_mul_f64.md new file mode 100644 index 0000000..63f0a66 --- /dev/null +++ b/data/1.38/duration_mul_f64.md @@ -0,0 +1,3 @@ ++++ +title = "`Duration::mul_f64`" ++++ diff --git a/data/1.38/euclidean_division.md b/data/1.38/euclidean_division.md new file mode 100644 index 0000000..40d046d --- /dev/null +++ b/data/1.38/euclidean_division.md @@ -0,0 +1,5 @@ ++++ +title = "euclidean division & modulo" +flag = "euclidean_division" +stabilization_pr_id = 61884 ++++ diff --git a/data/1.38/global_allocator_in_submodules.md b/data/1.38/global_allocator_in_submodules.md new file mode 100644 index 0000000..dda7e41 --- /dev/null +++ b/data/1.38/global_allocator_in_submodules.md @@ -0,0 +1,4 @@ ++++ +title = "`#[global_allocator]` inside submodules" +impl_pr_id = 62735 ++++ diff --git a/data/1.38/iter_peekable_double_ended.md b/data/1.38/iter_peekable_double_ended.md new file mode 100644 index 0000000..fd03827 --- /dev/null +++ b/data/1.38/iter_peekable_double_ended.md @@ -0,0 +1,4 @@ ++++ +title = "`DoubleEndedIterator` implementation for `iter::Peekable`" +impl_pr_id = 61457 ++++ diff --git a/data/1.38/iter_step_by_double_ended.md b/data/1.38/iter_step_by_double_ended.md new file mode 100644 index 0000000..def7dbd --- /dev/null +++ b/data/1.38/iter_step_by_double_ended.md @@ -0,0 +1,4 @@ ++++ +title = "`DoubleEndedIterator` implementation for `iter::StepBy`" +impl_pr_id = 61457 ++++ diff --git a/data/1.38/iter_take_double_ended.md b/data/1.38/iter_take_double_ended.md new file mode 100644 index 0000000..889a57c --- /dev/null +++ b/data/1.38/iter_take_double_ended.md @@ -0,0 +1,4 @@ ++++ +title = "`DoubleEndedIterator` implementation for `iter::Take`" +impl_pr_id = 61457 ++++ diff --git a/data/1.38/ptr_cast.md b/data/1.38/ptr_cast.md new file mode 100644 index 0000000..892f880 --- /dev/null +++ b/data/1.38/ptr_cast.md @@ -0,0 +1,4 @@ ++++ +title = "`cast` method on pointers" +item = [ "<*const T>::cast", "<*mut T>::cast",] ++++ diff --git a/data/1.38/shared_from_iter.md b/data/1.38/shared_from_iter.md new file mode 100644 index 0000000..d159b56 --- /dev/null +++ b/data/1.38/shared_from_iter.md @@ -0,0 +1,5 @@ ++++ +title = "`FromIterator` implementation for `Rc` and `Arc`" +flag = "shared_from_iter" +impl_pr_id = 61953 ++++ diff --git a/data/1.38/str_chars_debug.md b/data/1.38/str_chars_debug.md new file mode 100644 index 0000000..4cc163d --- /dev/null +++ b/data/1.38/str_chars_debug.md @@ -0,0 +1,4 @@ ++++ +title = "`Debug` implementation for `std::str::Chars`" +impl_pr_id = 63000 ++++ diff --git a/data/1.38/thread_accesserror_clone.md b/data/1.38/thread_accesserror_clone.md new file mode 100644 index 0000000..bb7830f --- /dev/null +++ b/data/1.38/thread_accesserror_clone.md @@ -0,0 +1,4 @@ ++++ +title = "`Clone` implementation for `thread::AccessError`" +impl_pr_id = 61491 ++++ diff --git a/data/1.38/thread_accesserror_copy.md b/data/1.38/thread_accesserror_copy.md new file mode 100644 index 0000000..4c36c4c --- /dev/null +++ b/data/1.38/thread_accesserror_copy.md @@ -0,0 +1,4 @@ ++++ +title = "`Copy` implementation for `thread::AccessError`" +impl_pr_id = 61491 ++++ diff --git a/data/1.38/thread_accesserror_eq.md b/data/1.38/thread_accesserror_eq.md new file mode 100644 index 0000000..04225c2 --- /dev/null +++ b/data/1.38/thread_accesserror_eq.md @@ -0,0 +1,4 @@ ++++ +title = "`Eq` implementation for `thread::AccessError`" +impl_pr_id = 61491 ++++ diff --git a/data/1.38/thread_accesserror_error.md b/data/1.38/thread_accesserror_error.md new file mode 100644 index 0000000..7e830f9 --- /dev/null +++ b/data/1.38/thread_accesserror_error.md @@ -0,0 +1,4 @@ ++++ +title = "`Error` implementation for `thread::AccessError`" +impl_pr_id = 61491 ++++ diff --git a/data/1.38/thread_accesserror_partialeq.md b/data/1.38/thread_accesserror_partialeq.md new file mode 100644 index 0000000..fa43727 --- /dev/null +++ b/data/1.38/thread_accesserror_partialeq.md @@ -0,0 +1,4 @@ ++++ +title = "`PartialEq` implementation for `thread::AccessError`" +impl_pr_id = 61491 ++++ diff --git a/data/1.38/unpin_ptr.md b/data/1.38/unpin_ptr.md new file mode 100644 index 0000000..c623129 --- /dev/null +++ b/data/1.38/unpin_ptr.md @@ -0,0 +1,8 @@ ++++ +title = "`Unpin` implementations for pointers" +impl_pr_id = 62583 +items = [ + "impl Unpin for *const T", + "impl Unpin for *mut T", +] ++++ diff --git a/data/1.38/version.toml b/data/1.38/version.toml new file mode 100644 index 0000000..4aba586 --- /dev/null +++ b/data/1.38/version.toml @@ -0,0 +1,3 @@ +number = "1.38" +gh_milestone_id = 65 +blog_post_path = "2019/09/26/Rust-1.38.0.html" diff --git a/data/1.39/async.md b/data/1.39/async.md new file mode 100644 index 0000000..187d8fa --- /dev/null +++ b/data/1.39/async.md @@ -0,0 +1,10 @@ ++++ +title = "`async`" +flag = "async_await" +tracking_issue_id = 50547 +doc_path = "std/keyword.async.html" +items = [ + "async fn", + "async move { ... }", +] ++++ diff --git a/data/1.39/await.md b/data/1.39/await.md new file mode 100644 index 0000000..0e1ec39 --- /dev/null +++ b/data/1.39/await.md @@ -0,0 +1,6 @@ ++++ +title = "`.await`" +flag = "async_await" +tracking_issue_id = 50547 +doc_path = "std/keyword.await.html" ++++ diff --git a/data/1.39/bind_by_move_pattern_guards.md b/data/1.39/bind_by_move_pattern_guards.md new file mode 100644 index 0000000..9a4aa90 --- /dev/null +++ b/data/1.39/bind_by_move_pattern_guards.md @@ -0,0 +1,6 @@ ++++ +title = "shared references to bind-by-move patterns in `match` arms' guards" +flag = "bind_by_move_pattern_guards" +tracking_issue_id = 15287 +stabilization_pr_id = 63118 ++++ diff --git a/data/1.39/const_linkedlist_new.md b/data/1.39/const_linkedlist_new.md new file mode 100644 index 0000000..a386459 --- /dev/null +++ b/data/1.39/const_linkedlist_new.md @@ -0,0 +1,3 @@ ++++ +title = "`LinkedList::new` as `const fn`" ++++ diff --git a/data/1.39/const_slice_len.md b/data/1.39/const_slice_len.md new file mode 100644 index 0000000..a4023f4 --- /dev/null +++ b/data/1.39/const_slice_len.md @@ -0,0 +1,3 @@ ++++ +title = "`[T]::len` as `const fn`" ++++ diff --git a/data/1.39/const_str_as_bytes.md b/data/1.39/const_str_as_bytes.md new file mode 100644 index 0000000..ac352df --- /dev/null +++ b/data/1.39/const_str_as_bytes.md @@ -0,0 +1,3 @@ ++++ +title = "`str::as_bytes` as `const fn`" ++++ diff --git a/data/1.39/const_str_len.md b/data/1.39/const_str_len.md new file mode 100644 index 0000000..1a6f83b --- /dev/null +++ b/data/1.39/const_str_len.md @@ -0,0 +1,3 @@ ++++ +title = "`str::len` as `const fn`" ++++ diff --git a/data/1.39/const_string_new.md b/data/1.39/const_string_new.md new file mode 100644 index 0000000..64207c2 --- /dev/null +++ b/data/1.39/const_string_new.md @@ -0,0 +1,3 @@ ++++ +title = "`String::new` as `const fn`" ++++ diff --git a/data/1.39/const_vec_new.md b/data/1.39/const_vec_new.md new file mode 100644 index 0000000..284b739 --- /dev/null +++ b/data/1.39/const_vec_new.md @@ -0,0 +1,3 @@ ++++ +title = "`Vec::new` as `const fn`" ++++ diff --git a/data/1.39/instant_checked_duration_since.md b/data/1.39/instant_checked_duration_since.md new file mode 100644 index 0000000..7796475 --- /dev/null +++ b/data/1.39/instant_checked_duration_since.md @@ -0,0 +1,3 @@ ++++ +title = "`Instant::checked_duration_since`" ++++ diff --git a/data/1.39/instant_saturating_duration_since.md b/data/1.39/instant_saturating_duration_since.md new file mode 100644 index 0000000..072fcba --- /dev/null +++ b/data/1.39/instant_saturating_duration_since.md @@ -0,0 +1,3 @@ ++++ +title = "`Instant::saturating_duration_since`" ++++ diff --git a/data/1.39/param_attrs.md b/data/1.39/param_attrs.md new file mode 100644 index 0000000..d7aeaba --- /dev/null +++ b/data/1.39/param_attrs.md @@ -0,0 +1,14 @@ ++++ +title = "attributes on function parameters" +flag = "param_attrs" +tracking_issue_id = 60406 +stabilization_pr_id = 64010 +items = [ + "#[cfg(...)]", + "#[cfg_attr(...)]", + "#[allow(...)]", + "#[warn(...)]", + "#[deny(...)]", + "#[forbid(...)]", +] ++++ diff --git a/data/1.39/pin_into_inner.md b/data/1.39/pin_into_inner.md new file mode 100644 index 0000000..9c02dff --- /dev/null +++ b/data/1.39/pin_into_inner.md @@ -0,0 +1,3 @@ ++++ +title = "`Pin::into_inner`" ++++ diff --git a/data/1.39/version.toml b/data/1.39/version.toml new file mode 100644 index 0000000..87d5c98 --- /dev/null +++ b/data/1.39/version.toml @@ -0,0 +1,3 @@ +number = "1.39" +gh_milestone_id = 66 +blog_post_path = "2019/11/07/Rust-1.39.0.html" diff --git a/data/1.4/use_group_renaming.md b/data/1.4/use_group_renaming.md new file mode 100644 index 0000000..f053460 --- /dev/null +++ b/data/1.4/use_group_renaming.md @@ -0,0 +1,3 @@ ++++ +title = "item renamings in import groups" ++++ diff --git a/data/1.4/version.toml b/data/1.4/version.toml new file mode 100644 index 0000000..87f6364 --- /dev/null +++ b/data/1.4/version.toml @@ -0,0 +1,3 @@ +number = "1.4" +gh_milestone_id = 26 +blog_post_path = "2015/10/29/Rust-1.4.html" diff --git a/data/1.40/cfg_doctest.md b/data/1.40/cfg_doctest.md new file mode 100644 index 0000000..3228ef0 --- /dev/null +++ b/data/1.40/cfg_doctest.md @@ -0,0 +1,6 @@ ++++ +title = "`#[cfg(doctest)]`" +flag = "cfg_doctest" +tracking_issue_id = 62210 +stabilization_pr_id = 63803 ++++ diff --git a/data/1.40/const_constructor.md b/data/1.40/const_constructor.md new file mode 100644 index 0000000..3180b4f --- /dev/null +++ b/data/1.40/const_constructor.md @@ -0,0 +1,6 @@ ++++ +title = "tuple struct and tuple variant constructors in `const fn`" +flag = "const_constructor" +tracking_issue_id = 61456 +stabilization_pr_id = 65188 ++++ diff --git a/data/1.40/const_is_power_of_two.md b/data/1.40/const_is_power_of_two.md new file mode 100644 index 0000000..b93cb1f --- /dev/null +++ b/data/1.40/const_is_power_of_two.md @@ -0,0 +1,12 @@ ++++ +title = "`is_power_of_two` as `const fn`" +impl_pr_id = 65092 +items = [ + "u8::is_power_of_two", + "u16::is_power_of_two", + "u32::is_power_of_two", + "u64::is_power_of_two", + "u128::is_power_of_two", + "usize::is_power_of_two", +] ++++ diff --git a/data/1.40/float_to_from_bytes.md b/data/1.40/float_to_from_bytes.md new file mode 100644 index 0000000..56d420e --- /dev/null +++ b/data/1.40/float_to_from_bytes.md @@ -0,0 +1,19 @@ ++++ +title = "float ↔ bytes conversion" +flag = "float_to_from_bytes" +items = [ + "f32::to_ne_bytes", + "f32::to_le_bytes", + "f32::to_be_bytes", + "f32::from_ne_bytes", + "f32::from_le_bytes", + "f32::from_be_bytes", + + "f64::to_ne_bytes", + "f64::to_le_bytes", + "f64::to_be_bytes", + "f64::from_ne_bytes", + "f64::from_le_bytes", + "f64::from_be_bytes", +] ++++ diff --git a/data/1.40/macros_in_extern.md b/data/1.40/macros_in_extern.md new file mode 100644 index 0000000..668d7bc --- /dev/null +++ b/data/1.40/macros_in_extern.md @@ -0,0 +1,7 @@ ++++ +title = "macro invocations in `extern {}` blocks" +flag = "macros_in_extern" +impl_pr_id = 49350 +tracking_issue_id = 49476 +stabilization_pr_id = 63931 ++++ diff --git a/data/1.40/map_get_key_value.md b/data/1.40/map_get_key_value.md new file mode 100644 index 0000000..af00a4d --- /dev/null +++ b/data/1.40/map_get_key_value.md @@ -0,0 +1,11 @@ ++++ +title = "`get_key_value` on `HashMap` and `BTreeMap`" +flag = "map_get_key_value" +impl_pr_id = 49346 +tracking_issue_id = 49347 +stabilization_pr_id = 64836 +items = [ + "HashMap::get_key_value", + "BTreeMap::get_key_value", +] ++++ diff --git a/data/1.40/mem_take.md b/data/1.40/mem_take.md new file mode 100644 index 0000000..a2dc7b9 --- /dev/null +++ b/data/1.40/mem_take.md @@ -0,0 +1,3 @@ ++++ +title = "`mem::take`" ++++ diff --git a/data/1.40/modern_meta_macro_pattern.md b/data/1.40/modern_meta_macro_pattern.md new file mode 100644 index 0000000..2d39327 --- /dev/null +++ b/data/1.40/modern_meta_macro_pattern.md @@ -0,0 +1,4 @@ ++++ +title = "the `meta` fragment specifier in `macro_rules!` for modern attribute syntax" +impl_pr_id = 63674 ++++ diff --git a/data/1.40/non_exhaustive.md b/data/1.40/non_exhaustive.md new file mode 100644 index 0000000..f30c680 --- /dev/null +++ b/data/1.40/non_exhaustive.md @@ -0,0 +1,7 @@ ++++ +title = "`#![non_exhaustive]`" +flag = "non_exhaustive" +rfc_id = 2008 +tracking_issue_id = 44109 +stabilization_pr_id = 64639 ++++ diff --git a/data/1.40/option_deref.md b/data/1.40/option_deref.md new file mode 100644 index 0000000..9ac7d91 --- /dev/null +++ b/data/1.40/option_deref.md @@ -0,0 +1,10 @@ ++++ +title = "`as_deref` and `as_deref_mut` on `Option`" +flag = "option_deref" +tracking_issue_id = 50264 +stabilization_pr_id = 64708 +items = [ + "Option::as_deref", + "Option::as_deref_mut", +] ++++ diff --git a/data/1.40/option_flattening.md b/data/1.40/option_flattening.md new file mode 100644 index 0000000..33f94f8 --- /dev/null +++ b/data/1.40/option_flattening.md @@ -0,0 +1,7 @@ ++++ +title = "`Option::flatten`" +flag = "option_flattening" +impl_pr_id = 60256 +tracking_issue_id = 60258 +stabilization_pr_id = 64747 ++++ diff --git a/data/1.40/proc_macro_generated_macro_rules.md b/data/1.40/proc_macro_generated_macro_rules.md new file mode 100644 index 0000000..a4f3446 --- /dev/null +++ b/data/1.40/proc_macro_generated_macro_rules.md @@ -0,0 +1,4 @@ ++++ +title = "proc-macros that generate `macro_rules!` macros" +stabilization_pr_id = 64035 ++++ diff --git a/data/1.40/slice_repeat.md b/data/1.40/slice_repeat.md new file mode 100644 index 0000000..1c46c97 --- /dev/null +++ b/data/1.40/slice_repeat.md @@ -0,0 +1,3 @@ ++++ +title = "`slice::repeat`" ++++ diff --git a/data/1.40/todo_macro.md b/data/1.40/todo_macro.md new file mode 100644 index 0000000..204a0f0 --- /dev/null +++ b/data/1.40/todo_macro.md @@ -0,0 +1,7 @@ ++++ +title = "`todo!`" +impl_pr_id = 56348 +tracking_issue_id = 59277 +stabilization_pr_id = 61879 +doc_path = "std/macro.todo.html" ++++ diff --git a/data/1.40/type_proc_macros.md b/data/1.40/type_proc_macros.md new file mode 100644 index 0000000..43fa1eb --- /dev/null +++ b/data/1.40/type_proc_macros.md @@ -0,0 +1,6 @@ ++++ +title = "function-like procedural macros in type position" +impl_pr_id = 49350 +tracking_issue_id = 49476 +stabilization_pr_id = 63931 ++++ diff --git a/data/1.40/udpsocker_peer_addr.md b/data/1.40/udpsocker_peer_addr.md new file mode 100644 index 0000000..733944e --- /dev/null +++ b/data/1.40/udpsocker_peer_addr.md @@ -0,0 +1,3 @@ ++++ +title = "`UdpSocket::peer_addr`" ++++ diff --git a/data/1.40/version.toml b/data/1.40/version.toml new file mode 100644 index 0000000..2a26a19 --- /dev/null +++ b/data/1.40/version.toml @@ -0,0 +1,3 @@ +number = "1.40" +gh_milestone_id = 67 +blog_post_path = "2019/12/19/Rust-1.40.0.html" diff --git a/data/1.41/core_panic_info.md b/data/1.41/core_panic_info.md new file mode 100644 index 0000000..eb0b388 --- /dev/null +++ b/data/1.41/core_panic_info.md @@ -0,0 +1,5 @@ ++++ +title = "the `core::panic` module" +flag = "core_panic_info" +stabilization_pr_id = 66771 ++++ diff --git a/data/1.41/maybe_uninit_debug.md b/data/1.41/maybe_uninit_debug.md new file mode 100644 index 0000000..4156eda --- /dev/null +++ b/data/1.41/maybe_uninit_debug.md @@ -0,0 +1,5 @@ ++++ +title = "`Debug` implementation for `MaybeUninit`" +flag = "maybe_uninit_debug" +impl_pr_id = 65013 ++++ diff --git a/data/1.41/re_rebalance_coherence.md b/data/1.41/re_rebalance_coherence.md new file mode 100644 index 0000000..5750583 --- /dev/null +++ b/data/1.41/re_rebalance_coherence.md @@ -0,0 +1,5 @@ ++++ +title = "relaxed coherence rules" +flag = "re_rebalance_coherence" +tracking_issue_id = 55437 ++++ diff --git a/data/1.41/result_map_or.md b/data/1.41/result_map_or.md new file mode 100644 index 0000000..eeed9dc --- /dev/null +++ b/data/1.41/result_map_or.md @@ -0,0 +1,7 @@ ++++ +title = "`Result::map_or`" +flag = "result_map_or" +impl_pr_id = 66292 +tracking_issue_id = 66293 +stabilization_pr_id = 66570 ++++ diff --git a/data/1.41/result_map_or_else.md b/data/1.41/result_map_or_else.md new file mode 100644 index 0000000..a511b23 --- /dev/null +++ b/data/1.41/result_map_or_else.md @@ -0,0 +1,7 @@ ++++ +title = "`Result::map_or_else`" +flag = "result_map_or_else" +impl_pr_id = 53777 +tracking_issue_id = 53268 +stabilization_pr_id = 66322 ++++ diff --git a/data/1.41/version.toml b/data/1.41/version.toml new file mode 100644 index 0000000..f950ce4 --- /dev/null +++ b/data/1.41/version.toml @@ -0,0 +1,3 @@ +number = "1.41" +gh_milestone_id = 68 +blog_post_path = "2020/01/30/Rust-1.41.0.html" diff --git a/data/1.41/weak_counts.md b/data/1.41/weak_counts.md new file mode 100644 index 0000000..6608a4d --- /dev/null +++ b/data/1.41/weak_counts.md @@ -0,0 +1,13 @@ ++++ +title = "`Weak` count methods" +flag = "weak_counts" +impl_pr_id = 56696 +tracking_issue_id = 57977 +stabilization_pr_id = 65778 +items = [ + "rc::Weak::weak_count", + "rc::Weak::strong_count", + "sync::Weak::weak_count", + "sync::Weak::strong_count", +] ++++ diff --git a/data/1.42/alloc_layout_const_new.md b/data/1.42/alloc_layout_const_new.md new file mode 100644 index 0000000..6e997a1 --- /dev/null +++ b/data/1.42/alloc_layout_const_new.md @@ -0,0 +1,5 @@ ++++ +title = "`alloc::Layout::new` as `const fn`" +flag = "alloc_layout_const_new" +impl_pr_id = 66254 ++++ diff --git a/data/1.42/attr_on_inline_mod.md b/data/1.42/attr_on_inline_mod.md new file mode 100644 index 0000000..3379ea1 --- /dev/null +++ b/data/1.42/attr_on_inline_mod.md @@ -0,0 +1,4 @@ ++++ +title = "attribute macros on inline modules" +stabilization_pr_id = 64273 ++++ diff --git a/data/1.42/debug_map_key_value.md b/data/1.42/debug_map_key_value.md new file mode 100644 index 0000000..47eac95 --- /dev/null +++ b/data/1.42/debug_map_key_value.md @@ -0,0 +1,6 @@ ++++ +title = "`DebugMap::value`" +flag = "debug_map_key_value" +tracking_issue_id = 62482 +stabilization_pr_id = 68200 ++++ diff --git a/data/1.42/eq_cursor.md b/data/1.42/eq_cursor.md new file mode 100644 index 0000000..539a7d5 --- /dev/null +++ b/data/1.42/eq_cursor.md @@ -0,0 +1,4 @@ ++++ +title = "`PartialEq` and `Eq` implementations for `io::Cursor`" +impl_pr_id = 67233 ++++ diff --git a/data/1.42/iter_empty_send_sync.md b/data/1.42/iter_empty_send_sync.md new file mode 100644 index 0000000..aff5366 --- /dev/null +++ b/data/1.42/iter_empty_send_sync.md @@ -0,0 +1,9 @@ ++++ +title = "unconditional `Send` and `Sync` implementations for `iter::Empty`" +flag = "iter_empty_send_sync" +impl_pr_id = 68348 +items = [ + "unsafe impl Send for Empty {}", + "unsafe impl Sync for Empty {}", +] ++++ diff --git a/data/1.42/manually_drop_take.md b/data/1.42/manually_drop_take.md new file mode 100644 index 0000000..5f62c6e --- /dev/null +++ b/data/1.42/manually_drop_take.md @@ -0,0 +1,6 @@ ++++ +title = "`ManuallyDrop::take`" +flag = "manually_drop_take" +tracking_issue_id = 55422 +stabilization_pr_id = 68066 ++++ diff --git a/data/1.42/matches_macro.md b/data/1.42/matches_macro.md new file mode 100644 index 0000000..a576cf9 --- /dev/null +++ b/data/1.42/matches_macro.md @@ -0,0 +1,6 @@ ++++ +title = "`matches!`" +flag = "matches_macro" +tracking_issue_id = 65721 +stabilization_pr_id = 67659 ++++ diff --git a/data/1.42/proc_macro_extern_prelude.md b/data/1.42/proc_macro_extern_prelude.md new file mode 100644 index 0000000..60d5291 --- /dev/null +++ b/data/1.42/proc_macro_extern_prelude.md @@ -0,0 +1,3 @@ ++++ +title = "the `proc_macro` crate without `extern crate` in procedural macro crates" ++++ diff --git a/data/1.42/slice_from_raw_parts.md b/data/1.42/slice_from_raw_parts.md new file mode 100644 index 0000000..a60b278 --- /dev/null +++ b/data/1.42/slice_from_raw_parts.md @@ -0,0 +1,7 @@ ++++ +title = "`ptr::slice_from_raw_parts_mut`" +flag = "slice_from_raw_parts" +impl_pr_id = 60667 +tracking_issue_id = 36925 +stabilization_pr_id = 68234 ++++ diff --git a/data/1.42/slice_patterns.md b/data/1.42/slice_patterns.md new file mode 100644 index 0000000..584709a --- /dev/null +++ b/data/1.42/slice_patterns.md @@ -0,0 +1,5 @@ ++++ +title = "subslice patterns (`[a, .., b]` and `[a, xs @ .., b]`)" +flag = "slice_patterns" +tracking_issue_id = 62254 ++++ diff --git a/data/1.42/transparent_enums.md b/data/1.42/transparent_enums.md new file mode 100644 index 0000000..15fd305 --- /dev/null +++ b/data/1.42/transparent_enums.md @@ -0,0 +1,6 @@ ++++ +title = "`#[repr(transparent)]` on single-variant enums" +flag = "transparent_enums" +tracking_issue_id = 60405 +stabilization_pr_id = 68122 ++++ diff --git a/data/1.42/version.toml b/data/1.42/version.toml new file mode 100644 index 0000000..80b6b74 --- /dev/null +++ b/data/1.42/version.toml @@ -0,0 +1,3 @@ +number = "1.42" +gh_milestone_id = 69 +blog_post_path = "2020/03/12/Rust-1.42.html" diff --git a/data/1.42/wait_timeout_until.md b/data/1.42/wait_timeout_until.md new file mode 100644 index 0000000..39facde --- /dev/null +++ b/data/1.42/wait_timeout_until.md @@ -0,0 +1,6 @@ ++++ +title = "`Condvar::wait_timeout_while`" +flag = "wait_timeout_until" +tracking_issue_id = 47960 +stabilization_pr_id = 67076 ++++ diff --git a/data/1.42/wait_until.md b/data/1.42/wait_until.md new file mode 100644 index 0000000..ff506b4 --- /dev/null +++ b/data/1.42/wait_until.md @@ -0,0 +1,6 @@ ++++ +title = "`Condvar::wait_while`" +flag = "wait_until" +tracking_issue_id = 47960 +stabilization_pr_id = 67076 ++++ diff --git a/data/1.43/assoc_int_consts.md b/data/1.43/assoc_int_consts.md new file mode 100644 index 0000000..d0bd212 --- /dev/null +++ b/data/1.43/assoc_int_consts.md @@ -0,0 +1,52 @@ ++++ +title = "numeric constants as associated constants" +flag = "assoc_int_consts" +impl_pr_id = 68325 +tracking_issue_id = 68490 +stabilization_pr_id = 68952 +items = [ + "f32::RADIX", + "f32::MANTISSA_DIGITS", + "f32::DIGITS", + "f32::EPSILON", + "f32::MIN", + "f32::MIN_POSITIVE", + "f32::MAX", + "f32::MIN_EXP", + "f32::MAX_EXP", + "f32::MIN_10_EXP", + "f32::MAX_10_EXP", + "f32::NAN", + "f32::INFINITY", + "f32::NEG_INFINITY", + + "f64::RADIX", + "f64::MANTISSA_DIGITS", + "f64::DIGITS", + "f64::EPSILON", + "f64::MIN", + "f64::MIN_POSITIVE", + "f64::MAX", + "f64::MIN_EXP", + "f64::MAX_EXP", + "f64::MIN_10_EXP", + "f64::MAX_10_EXP", + "f64::NAN", + "f64::INFINITY", + "f64::NEG_INFINITY", + + "i8::MIN", "i8::MAX", + "i16::MIN", "i16::MAX", + "i32::MIN", "i32::MAX", + "i64::MIN", "i64::MAX", + "i128::MIN", "i128::MAX", + "isize::MIN", "isize::MAX", + + "u8::MIN", "u8::MAX", + "u16::MIN", "u16::MAX", + "u32::MIN", "u32::MAX", + "u64::MIN", "u64::MAX", + "u128::MIN", "u128::MAX", + "usize::MIN", "usize::MAX", +] ++++ diff --git a/data/1.43/boxed_slice_try_from.md b/data/1.43/boxed_slice_try_from.md new file mode 100644 index 0000000..08cc564 --- /dev/null +++ b/data/1.43/boxed_slice_try_from.md @@ -0,0 +1,11 @@ ++++ +title = "`TryFrom` implementations from boxed slices to boxed arrays" +flag = "boxed_slice_try_from" +tracking_issue_id = 69202 +stabilization_pr_id = 69538 +items = [ + "impl TryFrom> for Box<[T; N]>", + "impl TryFrom> for Rc<[T; N]>", + "impl TryFrom> for Arc<[T; N]>", +] ++++ diff --git a/data/1.43/const_ascii_methods_on_intrinsics.md b/data/1.43/const_ascii_methods_on_intrinsics.md new file mode 100644 index 0000000..109c04d --- /dev/null +++ b/data/1.43/const_ascii_methods_on_intrinsics.md @@ -0,0 +1,5 @@ ++++ +title = "`u8::is_ascii` as `const fn`" +flag = "const_ascii_methods_on_intrinsics" +impl_pr_id = 68984 ++++ diff --git a/data/1.43/core_primitive.md b/data/1.43/core_primitive.md new file mode 100644 index 0000000..de6579f --- /dev/null +++ b/data/1.43/core_primitive.md @@ -0,0 +1,5 @@ ++++ +title = "`core::primitive`" +flag = "core_primitive" +impl_pr_id = 67637 ++++ diff --git a/data/1.43/cstring_from_vec_of_nonzerou8.md b/data/1.43/cstring_from_vec_of_nonzerou8.md new file mode 100644 index 0000000..3e2db27 --- /dev/null +++ b/data/1.43/cstring_from_vec_of_nonzerou8.md @@ -0,0 +1,5 @@ ++++ +title = "`From>` implementation for `CString`" +flag = "cstring_from_vec_of_nonzerou8" +impl_pr_id = 64069 ++++ diff --git a/data/1.43/extra_log_consts.md b/data/1.43/extra_log_consts.md new file mode 100644 index 0000000..f6f87c1 --- /dev/null +++ b/data/1.43/extra_log_consts.md @@ -0,0 +1,12 @@ ++++ +title = "`{f32, f64}::{LOG2_10, LOG10_2}`" +flag = "extra_log_consts" +tracking_issue_id = 50540 +stabilization_pr_id = 69249 +items = [ + "f32::LOG2_10", + "f32::LOG10_2", + "f64::LOG2_10", + "f64::LOG10_2", +] ++++ diff --git a/data/1.43/if_attr.md b/data/1.43/if_attr.md new file mode 100644 index 0000000..6588776 --- /dev/null +++ b/data/1.43/if_attr.md @@ -0,0 +1,4 @@ ++++ +title = "attributes on `if` expressions" +impl_pr_id = 69201 ++++ diff --git a/data/1.43/iter_once_with.md b/data/1.43/iter_once_with.md new file mode 100644 index 0000000..54b1679 --- /dev/null +++ b/data/1.43/iter_once_with.md @@ -0,0 +1,6 @@ ++++ +title = "`iter::once_with`" +flag = "iter_once_with" +tracking_issue_id = 57581 +stabilization_pr_id = 68800 ++++ diff --git a/data/1.43/string_as_mut.md b/data/1.43/string_as_mut.md new file mode 100644 index 0000000..33bd3d1 --- /dev/null +++ b/data/1.43/string_as_mut.md @@ -0,0 +1,5 @@ ++++ +title = "`AsMut` implementation for `String`" +flag = "string_as_mut" +impl_pr_id = 68742 ++++ diff --git a/data/1.43/version.toml b/data/1.43/version.toml new file mode 100644 index 0000000..a275a6e --- /dev/null +++ b/data/1.43/version.toml @@ -0,0 +1,3 @@ +number = "1.43" +channel = "beta" +gh_milestone_id = 70 diff --git a/data/1.44/version.toml b/data/1.44/version.toml new file mode 100644 index 0000000..945eec4 --- /dev/null +++ b/data/1.44/version.toml @@ -0,0 +1,3 @@ +number = "1.44" +channel = "nightly" +gh_milestone_id = 71 diff --git a/data/1.5/version.toml b/data/1.5/version.toml new file mode 100644 index 0000000..01defa0 --- /dev/null +++ b/data/1.5/version.toml @@ -0,0 +1,3 @@ +number = "1.5" +gh_milestone_id = 27 +blog_post_path = "2015/12/10/Rust-1.5.html" diff --git a/data/1.6/no_std.md b/data/1.6/no_std.md new file mode 100644 index 0000000..2b21e8c --- /dev/null +++ b/data/1.6/no_std.md @@ -0,0 +1,4 @@ ++++ +title = "`#![no_std]`" +flag = "no_std" ++++ diff --git a/data/1.6/version.toml b/data/1.6/version.toml new file mode 100644 index 0000000..2dfb4e2 --- /dev/null +++ b/data/1.6/version.toml @@ -0,0 +1,3 @@ +number = "1.6" +gh_milestone_id = 28 +blog_post_path = "2016/01/21/Rust-1.6.html" diff --git a/data/1.7/version.toml b/data/1.7/version.toml new file mode 100644 index 0000000..c181a67 --- /dev/null +++ b/data/1.7/version.toml @@ -0,0 +1,2 @@ +number = "1.7" +blog_post_path = "2016/03/02/Rust-1.7.html" diff --git a/data/1.8/augmented_assignments.md b/data/1.8/augmented_assignments.md new file mode 100644 index 0000000..c99d97b --- /dev/null +++ b/data/1.8/augmented_assignments.md @@ -0,0 +1,17 @@ ++++ +title = "assignment operator overloading" +flag = "augmented_assignments" +tracking_issue_id = 28235 +edition_guide_path = "rust-2018/data-types/operator-equals-are-now-implementable.html" +items = [ + "ops::AddAssign", + "ops::BitAndAssign", + "ops::BitOrAssign", + "ops::BitXorAssign", + "ops::DivAssign", + "ops::MulAssign", + "ops::RemAssign", + "ops::ShlAssign", + "ops::ShrAssign", +] ++++ diff --git a/data/1.8/braced_empty_structs.md b/data/1.8/braced_empty_structs.md new file mode 100644 index 0000000..b5cad2c --- /dev/null +++ b/data/1.8/braced_empty_structs.md @@ -0,0 +1,6 @@ ++++ +title = "empty structs and enum variants with braces" +flag = "braced_empty_structs" +rfc_id = 218 +tracking_issue_id = 29720 ++++ diff --git a/data/1.8/version.toml b/data/1.8/version.toml new file mode 100644 index 0000000..f8c30f4 --- /dev/null +++ b/data/1.8/version.toml @@ -0,0 +1,2 @@ +number = "1.8" +blog_post_path = "2016/04/14/Rust-1.8.html" diff --git a/data/1.9/deprecated.md b/data/1.9/deprecated.md new file mode 100644 index 0000000..e1c5c92 --- /dev/null +++ b/data/1.9/deprecated.md @@ -0,0 +1,7 @@ ++++ +title = "`#[deprecated]`" +flag = "deprecated" +rfc_id = 1270 +tracking_issue_id = 29935 +stabilization_pr_id = 32804 ++++ diff --git a/data/1.9/version.toml b/data/1.9/version.toml new file mode 100644 index 0000000..8e55ff2 --- /dev/null +++ b/data/1.9/version.toml @@ -0,0 +1,2 @@ +number = "1.9" +blog_post_path = "2016/05/26/Rust-1.9.html" diff --git a/data/unstable/associated_type_defaults.md b/data/unstable/associated_type_defaults.md new file mode 100644 index 0000000..226a8ad --- /dev/null +++ b/data/unstable/associated_type_defaults.md @@ -0,0 +1,5 @@ ++++ +title = "default values for associated types" +flag = "associated_type_defaults" +tracking_issue_id = 29661 ++++ diff --git a/data/unstable/cfg_target_has_atomic.md b/data/unstable/cfg_target_has_atomic.md new file mode 100644 index 0000000..dbf5ece --- /dev/null +++ b/data/unstable/cfg_target_has_atomic.md @@ -0,0 +1,5 @@ ++++ +title = "`cfg(target_has_atomic = ...)`" +flag = "cfg_target_has_atomic" +tracking_issue_id = 32976 ++++ diff --git a/data/unstable/const_generics.md b/data/unstable/const_generics.md new file mode 100644 index 0000000..dc83105 --- /dev/null +++ b/data/unstable/const_generics.md @@ -0,0 +1,6 @@ ++++ +title = "const generics" +flag = "const_generics" +rfc_id = 2000 +tracking_issue_id = 44580 ++++ diff --git a/data/unstable/const_in_array_repeat_expressions.md b/data/unstable/const_in_array_repeat_expressions.md new file mode 100644 index 0000000..347f22b --- /dev/null +++ b/data/unstable/const_in_array_repeat_expressions.md @@ -0,0 +1,6 @@ ++++ +title = "constants in array repeat expressions" +flag = "const_in_array_repeat_expressions" +rfc_id = 2203 +tracking_issue_id = 49147 ++++ diff --git a/data/unstable/drop_types_in_union.md b/data/unstable/drop_types_in_union.md new file mode 100644 index 0000000..26cf32a --- /dev/null +++ b/data/unstable/drop_types_in_union.md @@ -0,0 +1,5 @@ ++++ +title = "types with a custom `Drop` implementation in `union`s" +flag = "untagged_unions" +tracking_issue_id = 55149 ++++ diff --git a/data/unstable/exclusive_range_pattern.md b/data/unstable/exclusive_range_pattern.md new file mode 100644 index 0000000..c3bff66 --- /dev/null +++ b/data/unstable/exclusive_range_pattern.md @@ -0,0 +1,5 @@ ++++ +title = "exclusive range patterns (`a..b`)" +flag = "exclusive_range_pattern" +tracking_issue_id = 37854 ++++ diff --git a/data/unstable/exhaustive_patterns.md b/data/unstable/exhaustive_patterns.md new file mode 100644 index 0000000..060c70b --- /dev/null +++ b/data/unstable/exhaustive_patterns.md @@ -0,0 +1,6 @@ ++++ +title = "exhaustive pattern matching on types that contain uninhabited types" +flag = "exhaustive_patterns" +tracking_issue_id = 51085 +stabilization_pr_id = 56362 ++++ diff --git a/data/unstable/generic_associated_types.md b/data/unstable/generic_associated_types.md new file mode 100644 index 0000000..e5a5d83 --- /dev/null +++ b/data/unstable/generic_associated_types.md @@ -0,0 +1,6 @@ ++++ +title = "generic associated types (GAT)" +flag = "generic_associated_types" +rfc_id = 1598 +tracking_issue_id = 44265 ++++ diff --git a/data/unstable/half_open_range_patterns.md b/data/unstable/half_open_range_patterns.md new file mode 100644 index 0000000..3d0453e --- /dev/null +++ b/data/unstable/half_open_range_patterns.md @@ -0,0 +1,11 @@ ++++ +title = "half-open range patterns" +flag = "half_open_range_patterns" +impl_pr_id = 67258 +tracking_issue_id = 67264 +items = [ + "X..", + "..X", + "..=X", +] ++++ diff --git a/data/unstable/link_args.md b/data/unstable/link_args.md new file mode 100644 index 0000000..f813b78 --- /dev/null +++ b/data/unstable/link_args.md @@ -0,0 +1,6 @@ ++++ +title = "`#[link_args]`" +flag = "link_args" +tracking_issue_id = 29596 +unstable_book_path = "language-features/link-args.html" ++++ diff --git a/data/unstable/link_cfg.md b/data/unstable/link_cfg.md new file mode 100644 index 0000000..1a385c2 --- /dev/null +++ b/data/unstable/link_cfg.md @@ -0,0 +1,5 @@ ++++ +title = "`#[link(..., cfg(...))]`" +flag = "link_cfg" +tracking_issue_id = 37406 ++++ diff --git a/data/unstable/naked_functions.md b/data/unstable/naked_functions.md new file mode 100644 index 0000000..af3e818 --- /dev/null +++ b/data/unstable/naked_functions.md @@ -0,0 +1,5 @@ ++++ +title = "`#[naked]` functions" +flag = "naked_functions" +tracking_issue_id = 32408 ++++ diff --git a/data/unstable/never_type.md b/data/unstable/never_type.md new file mode 100644 index 0000000..49638bc --- /dev/null +++ b/data/unstable/never_type.md @@ -0,0 +1,5 @@ ++++ +title = "the never type (`!`)" +flag = "never_type" +tracking_issue_id = 35121 ++++ diff --git a/data/unstable/no_core.md b/data/unstable/no_core.md new file mode 100644 index 0000000..82b8b80 --- /dev/null +++ b/data/unstable/no_core.md @@ -0,0 +1,5 @@ ++++ +title = "`#![no_core]`" +flag = "no_core" +tracking_issue_id = 29639 ++++ diff --git a/data/unstable/non_ascii_idents.md b/data/unstable/non_ascii_idents.md new file mode 100644 index 0000000..26280aa --- /dev/null +++ b/data/unstable/non_ascii_idents.md @@ -0,0 +1,6 @@ ++++ +title = "non-ASCII identifiers" +flag = "non_ascii_idents" +tracking_issue_id = 55467 +unstable_book_path = "language-features/non-ascii-idents.html" ++++ diff --git a/data/unstable/plugin.md b/data/unstable/plugin.md new file mode 100644 index 0000000..88bd07c --- /dev/null +++ b/data/unstable/plugin.md @@ -0,0 +1,6 @@ ++++ +title = "`#![plugin(...)]`" +flag = "plugin" +tracking_issue_id = 29597 +unstable_book_path = "language-features/plugin.html" ++++ diff --git a/data/unstable/plugin_registrar.md b/data/unstable/plugin_registrar.md new file mode 100644 index 0000000..28dbc65 --- /dev/null +++ b/data/unstable/plugin_registrar.md @@ -0,0 +1,6 @@ ++++ +title = "`#[plugin_registrar]`" +flag = "plugin_registrar" +tracking_issue_id = 29597 +unstable_book_path = "language-features/plugin-registrar.html" ++++ diff --git a/data/unstable/raw_ref_op.md b/data/unstable/raw_ref_op.md new file mode 100644 index 0000000..9ae8171 --- /dev/null +++ b/data/unstable/raw_ref_op.md @@ -0,0 +1,7 @@ ++++ +title = "the raw reference operator (`&raw [mut | const] $place`)" +flag = "raw_ref_op" +rfc_id = 2582 +tracking_issue_id = 64490 +impl_pr_id = 64588 ++++ diff --git a/data/unstable/specialization.md b/data/unstable/specialization.md new file mode 100644 index 0000000..84e6db6 --- /dev/null +++ b/data/unstable/specialization.md @@ -0,0 +1,5 @@ ++++ +title = "specialization" +flag = "specialization" +tracking_issue_id = 31844 ++++ diff --git a/data/unstable/thread_local.md b/data/unstable/thread_local.md new file mode 100644 index 0000000..04d1cbe --- /dev/null +++ b/data/unstable/thread_local.md @@ -0,0 +1,5 @@ ++++ +title = "`#[thread_local]` on `static`s" +flag = "thread_local" +tracking_issue_id = 29594 ++++ diff --git a/data/unstable/type_ascription.md b/data/unstable/type_ascription.md new file mode 100644 index 0000000..3e52349 --- /dev/null +++ b/data/unstable/type_ascription.md @@ -0,0 +1,6 @@ ++++ +title = "type ascription" +flag = "type_ascription" +rfc_id = 803 +tracking_issue_id = 23416 ++++ diff --git a/features.toml b/features.toml deleted file mode 100644 index cf2a685..0000000 --- a/features.toml +++ /dev/null @@ -1,1952 +0,0 @@ -[[versions]] -number = "1.44" -channel = "nightly" -gh_milestone_id = 71 - -[[versions]] -number = "1.43" -channel = "beta" -gh_milestone_id = 70 - -[[versions.features]] -title = "attributes on `if` expressions" -slug = "if_attr" -impl_pr_id = 69201 - -[[versions.features]] -title = "numeric constants as associated constants" -flag = "assoc_int_consts" -impl_pr_id = 68325 -tracking_issue_id = 68490 -stabilization_pr_id = 68952 -items = [ - "f32::RADIX", "f64::RADIX", - "f32::MANTISSA_DIGITS", "f64::MANTISSA_DIGITS", - "f32::DIGITS", "f64::DIGITS", - "f32::EPSILON", "f64::EPSILON", - "f32::MIN", "f64::MIN", - "f32::MIN_POSITIVE", "f64::MIN_POSITIVE", - "f32::MAX", "f64::MAX", - "f32::MIN_EXP", "f64::MIN_EXP", - "f32::MAX_EXP", "f64::MAX_EXP", - "f32::MIN_10_EXP", "f64::MIN_10_EXP", - "f32::MAX_10_EXP", "f64::MAX_10_EXP", - "f32::NAN", "f64::NAN", - "f32::INFINITY", "f64::INFINITY", - "f32::NEG_INFINITY", "f64::NEG_INFINITY", - - "i8::MIN", "i8::MAX", - "i16::MIN", "i16::MAX", - "i32::MIN", "i32::MAX", - "i64::MIN", "i64::MAX", - "i128::MIN", "i128::MAX", - "isize::MIN", "isize::MAX", - - "u8::MIN", "u8::MAX", - "u16::MIN", "u16::MAX", - "u32::MIN", "u32::MAX", - "u64::MIN", "u64::MAX", - "u128::MIN", "u128::MAX", - "usize::MIN", "usize::MAX", -] - -[[versions.features]] -title = "`TryFrom` implementations from boxed slices to boxed arrays" -flag = "boxed_slice_try_from" -tracking_issue_id = 69202 -stabilization_pr_id = 69538 -items = [ - "impl TryFrom> for Box<[T; N]>", - "impl TryFrom> for Rc<[T; N]>", - "impl TryFrom> for Arc<[T; N]>", -] - -[[versions.features]] -title = "`core::primitive`" -flag = "core_primitive" -impl_pr_id = 67637 - -[[versions.features]] -title = "`u8::is_ascii` as `const fn`" -flag = "const_ascii_methods_on_intrinsics" -impl_pr_id = 68984 - -#[[versions.features]] -#title = "`Once::is_completed`" -#flag = "once_is_completed" -#tracking_issue_id = 54890 -#stabilization_pr_id = 68945 - -[[versions.features]] -title = "`{f32, f64}::{LOG2_10, LOG10_2}`" -flag = "extra_log_consts" -tracking_issue_id = 50540 -stabilization_pr_id = 69249 -items = ["f32::LOG2_10", "f32::LOG10_2", "f64::LOG2_10", "f64::LOG10_2"] - -[[versions.features]] -title = "`From>` implementation for `CString`" -flag = "cstring_from_vec_of_nonzerou8" -impl_pr_id = 64069 - -[[versions.features]] -title = "`iter::once_with`" -flag = "iter_once_with" -tracking_issue_id = 57581 -stabilization_pr_id = 68800 - -[[versions.features]] -title = "`AsMut` implementation for `String`" -flag = "string_as_mut" -impl_pr_id = 68742 - -[[versions]] -number = "1.42" -blog_post_path = "2020/03/12/Rust-1.42.html" -gh_milestone_id = 69 - -[[versions.features]] -title = "`#[repr(transparent)]` on single-variant enums" -flag = "transparent_enums" -tracking_issue_id = 60405 - -[[versions.features]] -title = "subslice patterns (`[a, .., b]` and `[a, xs @ .., b]`)" -flag = "slice_patterns" -tracking_issue_id = 62254 - -[[versions.features]] -title = "the `proc_macro` crate without `extern crate` in procedural macro crates" -slug = "proc_macro_extern_prelude" - -[[versions.features]] -title = "attribute macros on inline modules" -slug = "attr_on_inline_mod" -stabilization_pr_id = 64273 - -[[versions.features]] -title = "`matches!`" -flag = "matches_macro" -tracking_issue_id = 65721 -stabilization_pr_id = 67659 - -[[versions.features]] -title = "`PartialEq` and `Eq` implementations for `io::Cursor`" -slug = "eq_cursor" -impl_pr_id = 67233 - -#[[versions.features]] -#title = "`Pin::map_unchecked` and `Pin::map_unchecked_mut` with unsized result types" -#slug = "pin_map_unchecked_unsized_result" -#impl_pr_id = 67935 - -[[versions.features]] -title = "`alloc::Layout::new` as `const fn`" -flag = "alloc_layout_const_new" -impl_pr_id = 66254 - -[[versions.features]] -title = "`Condvar::wait_while`" -flag = "wait_until" -tracking_issue_id = 47960 -stabilization_pr_id = 67076 - -[[versions.features]] -title = "`Condvar::wait_timeout_while`" -flag = "wait_timeout_until" -tracking_issue_id = 47960 -stabilization_pr_id = 67076 - -[[versions.features]] -title = "unconditional `Send` and `Sync` implementations for `iter::Empty`" -flag = "iter_empty_send_sync" -impl_pr_id = 68348 -items = [ - "unsafe impl Send for Empty {}", - "unsafe impl Sync for Empty {}", -] - -[[versions.features]] -title = "`ManuallyDrop::take`" -flag = "manually_drop_take" -tracking_issue_id = 55422 -stabilization_pr_id = 68066 - -[[versions.features]] -title = "`#[repr(transparent)]` on single-variant enums" -flag = "transparent_enums" -tracking_issue_id = 60405 -stabilization_pr_id = 68122 - -[[versions.features]] -title = "`DebugMap::key`" -flag = "debug_map_key_value" -tracking_issue_id = 62482 -stabilization_pr_id = 68200 - -[[versions.features]] -title = "`DebugMap::value`" -flag = "debug_map_key_value" -tracking_issue_id = 62482 -stabilization_pr_id = 68200 - -[[versions.features]] -title = "`ptr::slice_from_raw_parts`" -flag = "slice_from_raw_parts" -impl_pr_id = 60667 -tracking_issue_id = 36925 -stabilization_pr_id = 68234 - -[[versions.features]] -title = "`ptr::slice_from_raw_parts_mut`" -flag = "slice_from_raw_parts" -impl_pr_id = 60667 -tracking_issue_id = 36925 -stabilization_pr_id = 68234 - -[[versions]] -number = "1.41" -blog_post_path = "2020/01/30/Rust-1.41.0.html" -gh_milestone_id = 68 - -[[versions.features]] -title = "relaxed coherence rules" -flag = "re_rebalance_coherence" -tracking_issue_id = 55437 - -[[versions.features]] -title = "the `core::panic` module" -flag = "core_panic_info" -stabilization_pr_id = 66771 - -[[versions.features]] -title = "`Debug` implementation for `MaybeUninit`" -flag = "maybe_uninit_debug" -impl_pr_id = 65013 - -[[versions.features]] -title = "`Result::map_or`" -flag = "result_map_or" -impl_pr_id = 66292 -tracking_issue_id = 66293 -stabilization_pr_id = 66570 - -[[versions.features]] -title = "`Result::map_or_else`" -flag = "result_map_or_else" -impl_pr_id = 53777 -tracking_issue_id = 53268 -stabilization_pr_id = 66322 - -[[versions.features]] -title = "`Weak` count methods" -flag = "weak_coutns" -impl_pr_id = 56696 -tracking_issue_id = 57977 -stabilization_pr_id = 65778 -items = [ - "rc::Weak::weak_count", - "rc::Weak::strong_count", - "sync::Weak::weak_count", - "sync::Weak::strong_count", -] - -[[versions]] -number = "1.40" -blog_post_path = "2019/12/19/Rust-1.40.0.html" -gh_milestone_id = 67 - -[[versions.features]] -title = "tuple struct and tuple variant constructors in `const fn`" -flag = "const_constructor" -tracking_issue_id = 61456 -stabilization_pr_id = 65188 - -[[versions.features]] -title = "`#![non_exhaustive]`" -flag = "non_exhaustive" -rfc_id = 2008 -tracking_issue_id = 44109 -stabilization_pr_id = 64639 - -[[versions.features]] -title = "macro invocations in `extern {}` blocks" -flag = "macros_in_extern" -impl_pr_id = 49350 -tracking_issue_id = 49476 -stabilization_pr_id = 63931 - -[[versions.features]] -title = "function-like procedural macros in type position" -slug = "type_proc_macros" -impl_pr_id = 49350 -tracking_issue_id = 49476 -stabilization_pr_id = 63931 - -[[versions.features]] -title = "proc-macros that generate `macro_rules!` macros" -slug = "proc_macro_generated_macro_rules" -stabilization_pr_id = 64035 - -[[versions.features]] -title = "the `meta` fragment specifier in `macro_rules!` for modern attribute syntax" -slug = "modern_meta_macro_pattern" -impl_pr_id = 63674 - -[[versions.features]] -title = "`#[cfg(doctest)]`" -flag = "cfg_doctest" -tracking_issue_id = 62210 -stabilization_pr_id = 63803 - -[[versions.features]] -title = "float ↔ bytes conversion" -flag = "float_to_from_bytes" -items = [ - "f32::to_ne_bytes", "f32::to_le_bytes", "f32::to_be_bytes", - "f32::from_ne_bytes", "f32::from_le_bytes", "f32::from_be_bytes", - - "f64::to_ne_bytes", "f64::to_le_bytes", "f64::to_be_bytes", - "f64::from_ne_bytes", "f64::from_le_bytes", "f64::from_be_bytes", -] - -[[versions.features]] -title = "`is_power_of_two` as `const fn`" -slug = "const_is_power_of_two" -impl_pr_id = 65092 -items = [ - "u8::is_power_of_two", - "u16::is_power_of_two", - "u32::is_power_of_two", - "u64::is_power_of_two", - "u128::is_power_of_two", - "usize::is_power_of_two", -] - -[[versions.features]] -title = "`get_key_value` on `HashMap` and `BTreeMap`" -flag = "map_get_key_value" -items = ["HashMap::get_key_value", "BTreeMap::get_key_value"] -impl_pr_id = 49346 -tracking_issue_id = 49347 -stabilization_pr_id = 64836 - -[[versions.features]] -title = "`as_deref` and `as_deref_mut` on `Option`" -flag = "option_deref" -tracking_issue_id = 50264 -stabilization_pr_id = 64708 -items = ["Option::as_deref", "Option::as_deref_mut"] - -[[versions.features]] -title = "`Option::flatten`" -flag = "option_flattening" -impl_pr_id = 60256 -tracking_issue_id = 60258 -stabilization_pr_id = 64747 - -[[versions.features]] -title = "`UdpSocket::peer_addr`" -slug = "udpsocker_peer_addr" - -[[versions.features]] -title = "`mem::take`" -slug = "mem_take" - -[[versions.features]] -title = "`slice::repeat`" -slug = "slice_repeat" - -[[versions.features]] -title = "`todo!`" -slug = "todo_macro" -impl_pr_id = 56348 -tracking_issue_id = 59277 -stabilization_pr_id = 61879 -doc_path = "std/macro.todo.html" - -[[versions]] -number = "1.39" -blog_post_path = "2019/11/07/Rust-1.39.0.html" -gh_milestone_id = 66 - -[[versions.features]] -title = "`async`" -slug = "async" -flag = "async_await" -tracking_issue_id = 50547 -doc_path = "std/keyword.async.html" -items = ["async fn", "async move { ... }"] - -[[versions.features]] -title = "`.await`" -slug = "await" -flag = "async_await" -tracking_issue_id = 50547 -doc_path = "std/keyword.await.html" - -[[versions.features]] -title = "attributes on function parameters" -flag = "param_attrs" -tracking_issue_id = 60406 -stabilization_pr_id = 64010 -items = [ - "#[cfg(...)]", - "#[cfg_attr(...)]", - "#[allow(...)]", - "#[warn(...)]", - "#[deny(...)]", - "#[forbid(...)]", -] - -[[versions.features]] -title = "shared references to bind-by-move patterns in `match` arms' guards" -flag = "bind_by_move_pattern_guards" -tracking_issue_id = 15287 -stabilization_pr_id = 63118 - -[[versions.features]] -title = "`Vec::new` as `const fn`" -slug = "const_vec_new" - -[[versions.features]] -title = "`String::new` as `const fn`" -slug = "const_string_new" - -[[versions.features]] -title = "`LinkedList::new` as `const fn`" -slug = "const_linkedlist_new" - -[[versions.features]] -title = "`str::len` as `const fn`" -slug = "const_str_len" - -[[versions.features]] -title = "`[T]::len` as `const fn`" -slug = "const_slice_len" - -[[versions.features]] -title = "`str::as_bytes` as `const fn`" -slug = "const_str_as_bytes" - -[[versions.features]] -title = "`Pin::into_inner`" -slug = "pin_into_inner" - -[[versions.features]] -title = "`Instant::checked_duration_since`" -slug = "instant_checked_duration_since" - -[[versions.features]] -title = "`Instant::saturating_duration_since`" -slug = "instant_saturating_duration_since" - -[[versions]] -number = "1.38" -blog_post_path = "2019/09/26/Rust-1.38.0.html" -gh_milestone_id = 65 - -[[versions.features]] -title = "`#[global_allocator]` inside submodules" -slug = "global_allocator_in_submodules" -impl_pr_id = 62735 - -[[versions.features]] -title = "`#[deprecated]` on macros" -slug = "deprecated_macros" -impl_pr_id = 62042 - -[[versions.features]] -title = "`Clone` implementation for `ascii::EscapeDefault`" -slug = "ascii_escapedefault_clone" -impl_pr_id = 63421 - -[[versions.features]] -title = "`Display` implementation for `ascii::EscapeDefault`" -slug = "ascii_escapedefault_display" -impl_pr_id = 63421 - -[[versions.features]] -title = "`Debug` implementation for `std::str::Chars`" -slug = "str_chars_debug" -impl_pr_id = 63000 - -[[versions.features]] -title = "`Unpin` implementations for pointers" -slug = "unpin_ptr" -impl_pr_id = 62583 -items = ["impl Unpin for *const T", "impl Unpin for *mut T"] - -[[versions.features]] -title = "euclidean division & modulo" -flag = "euclidean_division" -stabilization_pr_id = 61884 - -[[versions.features]] -title = "`FromIterator` implementation for `Rc` and `Arc`" -flag = "shared_from_iter" -impl_pr_id = 61953 - -[[versions.features]] -title = "`Clone` implementation for `thread::AccessError`" -slug = "thread_accesserror_clone" -impl_pr_id = 61491 - -[[versions.features]] -title = "`Copy` implementation for `thread::AccessError`" -slug = "thread_accesserror_copy" -impl_pr_id = 61491 - -[[versions.features]] -title = "`Eq` implementation for `thread::AccessError`" -slug = "thread_accesserror_eq" -impl_pr_id = 61491 - -[[versions.features]] -title = "`Error` implementation for `thread::AccessError`" -slug = "thread_accesserror_error" -impl_pr_id = 61491 - -[[versions.features]] -title = "`PartialEq` implementation for `thread::AccessError`" -slug = "thread_accesserror_partialeq" -impl_pr_id = 61491 - -[[versions.features]] -title = "`DoubleEndedIterator` implementation for `iter::StepBy`" -slug = "iter_step_by_double_ended" -impl_pr_id = 61457 - -[[versions.features]] -title = "`DoubleEndedIterator` implementation for `iter::Peekable`" -slug = "iter_peekable_double_ended" -impl_pr_id = 61457 - -[[versions.features]] -title = "`DoubleEndedIterator` implementation for `iter::Take`" -slug = "iter_take_double_ended" -impl_pr_id = 61457 - -[[versions.features]] -title = "`cast` method on pointers" -slug = "ptr_cast" -item = ["<*const T>::cast", "<*mut T>::cast"] - -[[versions.features]] -title = "`Duration::as_secs_f32`" -slug = "duration_as_secs_f32" - -[[versions.features]] -title = "`Duration::as_secs_f64`" -slug = "duration_as_secs_f64" - -[[versions.features]] -title = "`Duration::div_f32`" -slug = "duration_div_f32" - -[[versions.features]] -title = "`Duration::div_f64`" -slug = "duration_div_f64" - -[[versions.features]] -title = "`Duration::from_secs_f32`" -slug = "duration_from_secs_f32" - -[[versions.features]] -title = "`Duration::from_secs_f64`" -slug = "duration_from_secs_f64" - -[[versions.features]] -title = "`Duration::mul_f32`" -slug = "duration_mul_f32" - -[[versions.features]] -title = "`Duration::mul_f64`" -slug = "duration_mul_f64" - -[[versions.features]] -title = "`any::type_name`" -slug = "any_type_name" - -[[versions]] -number = "1.37" -blog_post_path = "2019/08/15/Rust-1.37.0.html" -gh_milestone_id = 64 - -[[versions.features]] -title = "conditional compilation of generic parameters" -slug = "generic_param_cfg_attrs" -impl_pr_id = 61547 -items = ["#[cfg(...)]", "#[cfg_attr(...)]"] - -[[versions.features]] -title = "enum variants through a type alias" -slug = "type_alias_enum_variants" -tracking_issue_id = 49683 -stabilization_pr_id = 61682 - -[[versions.features]] -title = "`_` as an identifier for constants" -flag = "underscore_const_names" -tracking_issue_id = 54912 - -[[versions.features]] -title = "`#[repr(align(N)]` on enums" -flag = "repr_align_enum" -tracking_issue_id = 57996 -stabilization_pr_id = 61229 -edition_guide_path = "rust-2018/data-types/choosing-alignment-with-the-repr-attribute.html" - -[[versions.features]] -title = "the `?` Kleene macro operator in the 2015 edition" -slug = "kleene_op_2015" -impl_pr_id = 60932 -edition_guide_path = "rust-2018/macros/at-most-once.html" - -[[versions.features]] -title = "`[T]::copy_within`" -flag = "copy_within" -impl_pr_id = 53652 -tracking_issue_id = 54236 -stabilization_pr_id = 61398 - -[[versions.features]] -title = "`reverse_bits` integer methods" -flag = "reverse_bits" -items = [ - "i8::reverse_bits", - "i16::reverse_bits", - "i32::reverse_bits", - "i64::reverse_bits", - "i128::reverse_bits", - "isize::reverse_bits", - "u8::reverse_bits", - "u16::reverse_bits", - "u32::reverse_bits", - "u64::reverse_bits", - "u128::reverse_bits", - "usize::reverse_bits", - "Wrapping::reverse_bits", -] -impl_pr_id = 48573 -tracking_issue_id = 48763 -stabilization_pr_id = 61364 - -[[versions.features]] -title = "`Option::xor`" -slug = "option_xor" - -[[versions]] -number = "1.36" -blog_post_path = "2019/07/04/Rust-1.36.0.html" -gh_milestone_id = 62 - -[[versions.features]] -title = "the `alloc` crate" -flag = "alloc" -stabilization_pr_id = 59675 - -[[versions.features]] -title = "Non-Lexical Lifetimes (NLL) on the 2015 edition" -slug = "nll_2015" -impl_pr_id = 59114 - -[[versions.features]] -title = "`hashbrown::HashMap` as the implementation of `HashMap`" -slug = "hashbrown" -impl_pr_id = 58623 - -[[versions.features]] -title = "multiple arguments in `dbg!` macro invocations" -slug = "dbg_multiple_args" -impl_pr_id = 59826 - -[[versions.features]] -title = "`Default` implementation for `io::Cursor`" -slug = "io_cursor_default" -impl_pr_id = 60234 - -[[versions.features]] -title = "`BorrowMut` implementation for `String`" -slug = "string_borrow_mut_str" -impl_pr_id = 60404 - -[[versions.features]] -title = "`From<&String>` implementation for `String`" -slug = "string_from_string_ref" -impl_pr_id = 59825 - -[[versions.features]] -title = "`mem::needs_drop` as `const fn`" -flag = "const_needs_drop" -stabilization_pr_id = 60364 - -[[versions.features]] -title = "`NonNull::cast` as `const fn`" -slug = "const_nonnull_cast" -impl_pr_id = 60244 - -[[versions.features]] -title = "`NonNull::dangling` as `const fn`" -slug = "const_nonnull_dangling" -impl_pr_id = 60244 - -[[versions.features]] -title = "`alloc::Layout::from_size_align_unchecked` as `const fn`" -slug = "const_layout_from_size_align_unchecked" -impl_pr_id = 60370 - -[[versions]] -number = "1.35" -blog_post_path = "2019/05/23/Rust-1.35.0.html" -gh_milestone_id = 61 - -[[versions.features]] -title = "closure to unsafe function pointer coercions" -slug = "coerce_closure_to_unsafe_fn_ptr" -impl_pr_id = 59580 - -[[versions.features]] -title = "boxed closure `Fn*` trait implementations" -flag = "boxed_closure_impls" -impl_pr_id = 59500 -items = [ - "impl FnOnce for Box where F: FnOnce + ?Sized", - "impl FnMut for Box where F: FnMut + ?Sized", - "impl Fn for Box where F: Fn + ?Sized", -] - -[[versions.features]] -title = "`dbg!` without arguments" -slug = "dbg_no_args" -impl_pr_id = 57847 - -[[versions.features]] -title = "`Default` implementation for `alloc::System`" -slug = "alloc_system_default" -impl_pr_id = 59451 - -[[versions.features]] -title = "`AsRawFd` implementation for `StdinLock`, `StdoutLock` and `StderrLock`" -flag = "asraw_stdio_locks" -impl_pr_id = 59512 - -[[versions.features]] -title = "`ExactSizeIterator` implementation for `ToLowercase` and `ToUppercase`" -flag = "exact_size_case_mapping_iter" -impl_pr_id = 58778 - -[[versions]] -number = "1.34" -blog_post_path = "2019/04/11/Rust-1.34.0.html" -gh_milestone_id = 60 - -[[versions.features]] -title = "`#[deprecated = \"reason\"]` as a shorthand for `#[deprecated(note = \"reason\")]`" -slug = "deprecated_equals_reason" - -[[versions.features]] -title = "`extern crate self as foo;`" -flag = "extern_crate_self" -tracking_issue_id = 56409 -stabilization_pr_id = 57407 - -[[versions.features]] -title = "arbitrary token streams in procedural attribute macros" -flag = "unrestricted_attribute_tokens" -tracking_issue_id = 55208 -items = ["#[attr{...}]", "#[attr[...]]", "#[attr(...)]"] - -[[versions.features]] -title = "`overflowing_neg` as `const fn`" -slug = "const_overflowing_neg" -items = [ - "i8::overflowing_neg", - "i16::overflowing_neg", - "i32::overflowing_neg", - "i64::overflowing_neg", - "i128::overflowing_neg", - "isize::overflowing_neg", - "u8::overflowing_neg", - "u16::overflowing_neg", - "u32::overflowing_neg", - "u64::overflowing_neg", - "u128::overflowing_neg", - "usize::overflowing_neg", -] -impl_pr_id = 58044 - -[[versions.features]] -title = "`wrapping_neg` as `const fn`" -slug = "const_wrapping_neg" -items = [ - "i8::wrapping_neg", - "i16::wrapping_neg", - "i32::wrapping_neg", - "i64::wrapping_neg", - "i128::wrapping_neg", - "isize::wrapping_neg", - "u8::wrapping_neg", - "u16::wrapping_neg", - "u32::wrapping_neg", - "u64::wrapping_neg", - "u128::wrapping_neg", - "usize::wrapping_neg", -] -impl_pr_id = 58044 - -[[versions.features]] -title = "alternative registries to crates.io in cargo" -slug = "alternative_registries" - -[[versions]] -number = "1.33" -blog_post_path = "2019/02/28/Rust-1.33.0.html" -gh_milestone_id = 59 - -[[versions.features]] -title = "integer match exhaustiveness checking" -flag = "exhaustive_integer_patterns" -rfc_id = 2591 -tracking_issue_id = 50907 - -[[versions.features]] -title = "underscore imports (impl-only trait imports)" -flag = "underscore_imports" -rfc_id = 2166 -tracking_issue_id = 48216 -stabilization_pr_id = 56303 -items = [ - "extern crate c as _;", - "use path as _;", -] - -[[versions.features]] -title = "`#[repr(packed(N))]` on structs" -flag = "repr_packed" -rfc_id = 1399 -tracking_issue_id = 33158 -stabilization_pr_id = 57049 - -[[versions.features]] -title = "irrefutable patterns in `if let` and `while let`" -flag = "irrefutable_let_patterns" -rfc_id = 2086 -impl_pr_id = 49469 -tracking_issue_id = 44495 -stabilization_pr_id = 57535 - -[[versions.features]] -title = "`const unsafe fn`s inside `unsafe` blocks in `const fn`" -flag = "min_const_unsafe_fn" -tracking_issue_id = 55607 -stabilization_pr_id = 57067 - -[[versions.features]] -title = "let bindings, assignments and destructuring in `const fn`" -flag = "const_let" -rfc_id = 2341 -tracking_issue_id = 48821 -stabilization_pr_id = 57175 - -[[versions.features]] -title = "`#[cfg_attr(cfg, attr1, attr2, attr3)]`" -flag = "cfg_attr_multi" -rfc_id = 2539 -impl_pr_id = 54862 -tracking_issue_id = 54881 -stabilization_pr_id = 57332 - -[[versions.features]] -title = "or-patterns in `if let` and `while let`" -flag = "if_while_or_patterns" -rfc_id = 2175 -tracking_issue_id = 48215 -stabilization_pr_id = 57532 - -[[versions.features]] -title = "`cfg(target_vendor)`" -flag = "cfg_target_vendor" -impl_pr_id = 28612 -tracking_issue_id = 29718 -stabilization_pr_id = 57465 - -[[versions.features]] -title = "`Rc`, `Arc` or `Pin` as a method receiver" -slug = "rc_arc_pin_method_receiver" -stabilization_pr_id = 56805 - -[[versions.features]] -title = "`Ipv4Addr::new` as `const fn`" -flag = "const_ip" -stabilization_pr_id = 57234 - -[[versions.features]] -title = "`pin::Pin`" -flag = "pin" - -[[versions.features]] -title = "`marker::Unpin`" -slug = "unpin" -flag = "pin" - -[[versions.features]] -title = "`marker::PhantomUnpinned`" -slug = "phantom_unpinned" -flag = "pin" - -[[versions]] -number = "1.32" -blog_post_path = "2019/01/17/Rust-1.32.0.html" -gh_milestone_id = 63 - -[[versions.features]] -title = "the `literal` fragment specifier in `macro_rules!`" -flag = "macro_literal_matcher" -rfc_id = 1576 -tracking_issue_id = 35625 -stabilization_pr_id = 56072 - -[[versions.features]] -title = "`?` as the Kleene \"at most one\" operator in `macro_rules!` in the 2018 edition" -flag = "macro_at_most_once_rep" -rfc_id = 2298 -tracking_issue_id = 48075 -stabilization_pr_id = 56245 -edition_guide_path = "rust-2018/macros/at-most-once.html" - -[[versions.features]] -title = "`Self` as a constructor and pattern for unit and tuple structs" -flag = "self_struct_ctor" -rfc_id = 2302 -tracking_issue_id = 51994 -stabilization_pr_id = 56365 - -[[versions.features]] -title = "`#[must_use]` on traits" -slug = "must_use_traits" -impl_pr_id = 55663 - -[[versions.features]] -title = "`Self` in type definitions" -flag = "self_in_typedefs" -rfc_id = 2300 -tracking_issue_id = 49303 -stabilization_pr_id = 56366 - -[[versions.features]] -title = "uniform paths (`use x::y;` as `use self::x::y;`) in the 2018 edition" -flag = "uniform_paths" -tracking_issue_id = 53130 -stabilization_pr_id = 56759 - -[[versions.features]] -title = "`dbg!`" -flag = "dbg_macro" -rfc_id = 2361 -impl_pr_id = 54317 -tracking_issue_id = 54306 -stabilization_pr_id = 56395 - -[[versions.features]] -title = "integer ↔ bytes conversion" -flag = "int_to_from_bytes" -items = [ - "i8::to_ne_bytes", "i8::to_le_bytes", "i8::to_be_bytes", - "i8::from_ne_bytes", "i8::from_le_bytes", "i8::from_be_bytes", - - "i16::to_ne_bytes", "i16::to_le_bytes", "i16::to_be_bytes", - "i16::from_ne_bytes", "i16::from_le_bytes", "i16::from_be_bytes", - - "i32::to_ne_bytes", "i32::to_le_bytes", "i32::to_be_bytes", - "i32::from_ne_bytes", "i32::from_le_bytes", "i32::from_be_bytes", - - "i64::to_ne_bytes", "i64::to_le_bytes", "i64::to_be_bytes", - "i64::from_ne_bytes", "i64::from_le_bytes", "i64::from_be_bytes", - - "i128::to_ne_bytes", "i128::to_le_bytes", "i128::to_be_bytes", - "i128::from_ne_bytes", "i128::from_le_bytes", "i128::from_be_bytes", - - "isize::to_ne_bytes", "isize::to_le_bytes", "isize::to_be_bytes", - "isize::from_ne_bytes", "isize::from_le_bytes", "isize::from_be_bytes", - - "u8::to_ne_bytes", "u8::to_le_bytes", "u8::to_be_bytes", - "u8::from_ne_bytes", "u8::from_le_bytes", "u8::from_be_bytes", - - "u16::to_ne_bytes", "u16::to_le_bytes", "u16::to_be_bytes", - "u16::from_ne_bytes", "u16::from_le_bytes", "u16::from_be_bytes", - - "u32::to_ne_bytes", "u32::to_le_bytes", "u32::to_be_bytes", - "u32::from_ne_bytes", "u32::from_le_bytes", "u32::from_be_bytes", - - "u64::to_ne_bytes", "u64::to_le_bytes", "u64::to_be_bytes", - "u64::from_ne_bytes", "u64::from_le_bytes", "u64::from_be_bytes", - - "u128::to_ne_bytes", "u128::to_le_bytes", "u128::to_be_bytes", - "u128::from_ne_bytes", "u128::from_le_bytes", "u128::from_be_bytes", - - "usize::to_ne_bytes", "usize::to_le_bytes", "usize::to_be_bytes", - "usize::from_ne_bytes", "usize::from_le_bytes", "usize::from_be_bytes", -] - -[[versions.features]] -title = "`FromStr` implementation for `PathBuf`" -flag = "path_from_str" -impl_pr_id = 55148 - -[[versions.features]] -title = "`FromIterator` implementation for `Box<[T]>`" -flag = "boxed_slice_from_iter" -impl_pr_id = 55843 - -[[versions.features]] -title = "`Cell::as_ptr` as `const fn`" -slug = "const_cell_as_ptr" - -[[versions.features]] -title = "`UnsafeCell::get` as `const fn`" -slug = "const_unsafe_cell_get" - -[[versions.features]] -title = "`char::is_ascii` as `const fn`" -slug = "const_char_is_ascii" - -[[versions.features]] -title = "`iter::empty` as `const fn`" -slug = "const_iter_empty" - -[[versions.features]] -title = "`ManuallyDrop::new` as `const fn`" -slug = "const_manually_drop_new" - -[[versions.features]] -title = "`ManuallyDrop::into_inner` as `const fn`" -slug = "const_manually_drop_into_inner" - -[[versions.features]] -title = "`RangeInclusive::start` as `const fn`" -slug = "const_range_inclusive_start" - -[[versions.features]] -title = "`RangeInclusive::end` as `const fn`" -slug = "const_range_inclusive_end" - -[[versions.features]] -title = "`NonNull::as_ptr` as `const fn`" -slug = "const_non_null_as_ptr" - -[[versions.features]] -title = "`slice::as_ptr` as `const fn`" -slug = "const_slice_as_ptr" - -[[versions.features]] -title = "`str::as_ptr` as `const fn`" -slug = "const_str_as_ptr" - -[[versions.features]] -title = "`Duration::as_secs` as `const fn`" -slug = "const_duration_as_secs" - -[[versions.features]] -title = "`Duration::subsec_millis` as `const fn`" -slug = "const_duration_subsec_millis" - -[[versions.features]] -title = "`Duration::subsec_micros` as `const fn`" -slug = "const_duration_subsec_micros" - -[[versions.features]] -title = "`Duration::subsec_nanos` as `const fn`" -slug = "const_duration_subsec_nanos" - -[[versions.features]] -title = "`CStr::as_ptr` as `const fn`" -slug = "const_cstr_as_ptr" - -[[versions.features]] -title = "`Ipv4Addr::is_unspecified` as `const fn`" -slug = "const_ipv4addr_is_unspecified" - -[[versions.features]] -title = "`Ipv6Addr::new` as `const fn`" -slug = "const_ipv6addr_new" - -[[versions.features]] -title = "`Ipv6Addr::octets` as `const fn`" -slug = "const_ipv6addr_octets" - -[[versions]] -number = "1.31" -blog_post_path = "2018/12/06/Rust-1.31-and-rust-2018.html" -gh_milestone_id = 58 - -[[versions.features]] -title = "the 2018 edition" -slug = "edition_2018" -stabilization_pr_id = 54057 - -[[versions.features]] -title = "parentheses in patterns" -flag = "pattern_parentheses" -tracking_issue_id = 51087 - -[[versions.features]] -title = "`const fn`" -flag = "min_const_fn" -rfc_id = 911 -tracking_issue_id = 53555 -stabilization_pr_id = 54835 - -[[versions.features]] -title = "scoped lints" -flag = "tool_lints" -tracking_issue_id = 44690 -stabilization_pr_id = 54870 -items = [ - "#[allow(tool::lint)]", - "#[warn(tool::lint)]", - "#[deny(tool::lint)]", - "#[forbid(tool::lint)]", -] - -[[versions.features]] -title = "lifetime elision in `impl` headers" -flag = "impl_header_lifetime_elision" -tracking_issue_id = 15872 -stabilization_pr_id = 54778 -edition_guide_path = "rust-2018/ownership-and-lifetimes/lifetime-elision-in-impl.html" - -[[versions.features]] -title = "`extern crate foo as bar;`" -flag = "extern_crate_item_prelude" -tracking_issue_id = 55599 - -[[versions]] -number = "1.30" -blog_post_path = "2018/10/25/Rust-1.30.0.html" -gh_milestone_id = 57 - -[[versions.features]] -title = "`foo.rs` as an alternative to `foo/mod.rs`" -flag = "non_modrs_mods" -tracking_issue_id = 44660 - -[[versions.features]] -title = "the `vis` fragment specifier in `macro_rules!`" -flag = "macro_vis_matcher" -tracking_issue_id = 41022 - -[[versions.features]] -title = "macro imports and reexports via the module system" -flag = "use_extern_macro" -tracking_issue_id = 35896 - -[[versions.features]] -title = "raw identifiers (`r#keyword`)" -flag = "raw_identifiers" -tracking_issue_id = 48589 -edition_guide_path = "rust-2018/module-system/raw-identifiers.html" - -[[versions.features]] -title = "tool-scoped attributes" -flag = "tool_attributes" -tracking_issue_id = 44690 - -[[versions.features]] -title = "multi-segment paths in attributes and derives" -flag = "proc_macro_path_invoc" -tracking_issue_id = 38356 - -[[versions.features]] -title = "non-string literals in attribute lists and values of key-value pairs" -flag = "attr_literals" -tracking_issue_id = 34981 - -[[versions.features]] -title = "outlives requirement inference" -flag = "infer_outlives_requirements" -rfc_id = 2093 -tracking_issue_id = 44493 - -[[versions.features]] -title = "`#[panic_handler]`" -flag = "panic_handler" -tracking_issue_id = 44489 - -[[versions.features]] -title = "`#[used]`" -flag = "used" -tracking_issue_id = 40289 - -[[versions.features]] -title = "`crate` in paths" -flag = "crate_in_paths" -tracking_issue_id = 45477 - -[[versions.features]] -title = "absolute paths as paths from other crates" -flag = "extern_absolute_paths" -tracking_issue_id = 44660 - -#[[versions.features]] -#flag = "extern_prelude" -#tracking_issue_id = 44660 - -[[versions]] -number = "1.29" -blog_post_path = "2018/09/13/Rust-1.29.html" -gh_milestone_id = 53 - -[[versions.features]] -title = "procedural macros" -flag = "proc_macro" -tracking_issue_id = 38356 -stabilization_pr_id = 52081 - -[[versions]] -number = "1.28" -blog_post_path = "2018/08/02/Rust-1.28.html" -gh_milestone_id = 51 - -[[versions.features]] -title = "`#[global_allocator]`" -flag = "global_allocator" -tracking_issue_id = 27389 -edition_guide_path = "rust-2018/platform-and-target-support/global-allocators.html" - -[[versions.features]] -title = "`#[repr(transparent)]` on newtype structs" -flag = "repr_transparent" -tracking_issue_id = 43036 -stabilization_pr_id = 51562 - -[[versions.features]] -title = "`pure` as an identifier" -slug = "pure_ident" -rfc_id = 2421 -impl_pr_id = 51196 - -[[versions.features]] -title = "`sizeof` as an identifier" -slug = "sizeof_ident" -rfc_id = 2421 -impl_pr_id = 51196 - -[[versions.features]] -title = "`alignof` as an identifier" -slug = "alignof_ident" -rfc_id = 2421 -impl_pr_id = 51196 - -[[versions.features]] -title = "`offsetof` as an identifier" -slug = "offsetof_ident" -rfc_id = 2421 -impl_pr_id = 51196 - -[[versions]] -number = "1.27" -blog_post_path = "2018/06/21/Rust-1.27.html" -gh_milestone_id = 50 - -[[versions.features]] -title = "attributes on generic parameters" -flag = "generic_param_attrs" -rfc_id = 1327 -tracking_issue_id = 48848 - -[[versions.features]] -title = "`#[cfg(target_feature = \"...\")]`" -flag = "cfg_target_feature" -tracking_issue_id = 29717 - -[[versions.features]] -title = "`#[target_feature(...)]`" -slug = "target_feature" - -[[versions.features]] -title = "`dyn Trait` as a syntax for trait objects" -flag = "dyn_trait" -tracking_issue_id = 44662 -edition_guide_path = "rust-2018/trait-system/dyn-trait-for-trait-objects.html" - -[[versions.features]] -title = "`#[must_use]` on functions" -flag = "fn_must_use" -rfc_id = 1940 -tracking_issue_id = 43302 - -[[versions.features]] -title = "the `lifetime` fragment specifier in `macro_rules!`" -flag = "macro_lifetime_matcher" -tracking_issue_id = 34303 -stabilization_pr_id = 50385 - -[[versions.features]] -title = "types implementing `Termination` as the return type for `#[test]`s" -flag = "termination_trait_test" -tracking_issue_id = 48854 - -[[versions.features]] -title = "`proc` as an identifier" -slug = "proc_ident" -impl_pr_id = 49699 - -[[versions]] -number = "1.26" -blog_post_path = "2018/05/10/Rust-1.26.html" -gh_milestone_id = 48 - -[[versions.features]] -title = "array indexing in constants" -flag = "const_indexing" -tracking_issue_id = 29947 -stabilization_pr_id = 46882 - -[[versions.features]] -title = "inclusive range syntax" -flag = "inclusive_range_syntax" -rfc_id = 1192 -tracking_issue_id = 28237 -stabilization_pr_id = 47813 -edition_guide_path = "rust-2018/data-types/inclusive-ranges.html" -items = ["a..=b", "..=b"] - -[[versions.features]] -title = "inclusive ranges in patterns" -flag = "dotdoteq_in_patterns" -rfc_id = 1192 -tracking_issue_id = 28237 -book_path = "ch18-03-pattern-syntax.html#matching-ranges-of-values-with-" -items = ["a..=b", "..=b"] - -[[versions.features]] -title = "types implementing `Termination` as the return type for `fn main()`" -flag = "termination_trait" -tracking_issue_id = 43301 -edition_guide_path = "rust-2018/error-handling-and-panics/question-mark-in-main-and-tests.html" - -[[versions.features]] -title = "`Clone` implementation for applicable closures" -flag = "clone_closures" -rfc_id = 2132 -tracking_issue_id = 44490 - -[[versions.features]] -title = "`Copy` implementation for applicable closures" -flag = "copy_closures" -rfc_id = 2132 -tracking_issue_id = 44490 - -[[versions.features]] -title = "`impl Trait` in function arguments" -flag = "universal_impl_trait" -tracking_issue_id = 34511 -edition_guide_path = "rust-2018/trait-system/impl-trait-for-returning-complex-types-with-ease.html" - -[[versions.features]] -title = "`impl Trait` in function return types" -flag = "conservative_impl_trait" -tracking_issue_id = 34511 -edition_guide_path = "rust-2018/trait-system/impl-trait-for-returning-complex-types-with-ease.html" - -[[versions.features]] -title = "128 bit integer types" -flag = "i128_type" -tracking_issue_id = 35118 -edition_guide_path = "rust-2018/data-types/128-bit-integers.html" -items = ["i128", "u128"] - -[[versions.features]] -title = "default match binding modes" -flag = "match_default_bindings" -rfc_id = 2005 -stabilization_pr_id = 42640 -edition_guide_path = "rust-2018/ownership-and-lifetimes/default-match-bindings.html" - -[[versions.features]] -title = "placeholder lifetimes (`'_`)" -flag = "underscore_lifetimes" -rfc_id = 2115 -tracking_issue_id = 48469 -stabilization_pr_id = 49458 -edition_guide_path = "rust-2018/ownership-and-lifetimes/the-anonymous-lifetime.html" - -[[versions]] -number = "1.25" -blog_post_path = "2018/03/29/Rust-1.25.html" -gh_milestone_id = 44 - -[[versions.features]] -title = "`#[repr(align(N))]`" -flag = "repr_align" -rfc_id = 1358 -tracking_issue_id = 33626 -stabilization_pr_id = 47006 - -[[versions.features]] -title = "`|` at the beginning of match arms" -flag = "match_beginning_vert" -rfc_id = 1925 -tracking_issue_id = 44101 -stabilization_pr_id = 47947 - -[[versions.features]] -title = "nested groups in imports" -flag = "use_nested_groups" -rfc_id = 2128 -tracking_issue_id = 44494 -stabilization_pr_id = 47948 -edition_guide_path = "rust-2018/module-system/nested-imports-with-use.html" - -[[versions]] -number = "1.24" -blog_post_path = "2018/02/15/Rust-1.24.html" -gh_milestone_id = 41 - -[[versions.features]] -title = "the sysV64 ABI on any platform" -flag = "abi_sysv64" -tracking_issue_id = 36167 - -[[versions.features]] -title = "`is_null` on pointers to unsized types" -slug = "unsized_ptr_is_null" -impl_pr_id = 46094 -items = ["<*const T>::is_null", "<*mut T>::is_null"] - -[[versions]] -number = "1.23" -blog_post_path = "2018/01/04/Rust-1.23.html" -gh_milestone_id = 40 - -[[versions.features]] -title = "`as_ref` on pointers to unsized types" -slug = "unsized_ptr_as_ref" -impl_pr_id = 44932 -items = ["<*const T>::as_ref", "<*mut T>::as_ref"] - -[[versions.features]] -title = "`as_mut` on `*mut T`" -slug = "unsized_ptr_as_mut" -impl_pr_id = 44932 - -[[versions]] -number = "1.22" -blog_post_path = "2017/11/22/Rust-1.22.html" -gh_milestone_id = 39 - -[[versions.features]] -title = "`Drop` types in constants" -flag = "drop_types_in_const" -rfc_id = 1440 -tracking_issue_id = 33156 - -[[versions]] -number = "1.21" -blog_post_path = "2017/10/12/Rust-1.21.html" -gh_milestone_id = 38 - -#[[versions.features]] -#flag = "rvalue_static_promotion" -#rfc_id = 1414 -#tracking_issue_id = 38865 - -[[versions]] -number = "1.20" -blog_post_path = "2017/08/31/Rust-1.20.html" -gh_milestone_id = 37 - -[[versions.features]] -title = "attributes on struct literal fields" -flag = "struct_field_attributes" -tracking_issue_id = 38814 - -[[versions.features]] -title = "associated constants in `trait` and `impl` blocks" -flag = "associated_consts" -tracking_issue_id = 29646 -stabilization_pr_id = 42809 -edition_guide_path = "rust-2018/trait-system/associated-constants.html" - -[[versions.features]] -title = "`compile_error!`" -flag = "compile_error" -rfc_id = 1695 -impl_pr_id = 42620 -tracking_issue_id = 40872 -stabilization_pr_id = 43373 - -[[versions.features]] -title = "`unimplemented!` with a message" -slug = "unimplemented_macro_args" -impl_pr_id = 42155 - -[[versions]] -number = "1.19" -blog_post_path = "2017/07/20/Rust-1.19.html" -gh_milestone_id = 36 - -[[versions.features]] -title = "`union`s" -flag = "untagged_unions" -rfc_id = 1444 -tracking_issue_id = 32836 -stabilization_pr_id = 42068 - -[[versions.features]] -title = "`break` with a value inside `loop`s" -flag = "loop_break_value" -rfc_id = 1624 -tracking_issue_id = 37339 -stabilization_pr_id = 42016 -edition_guide_path = "rust-2018/control-flow/loops-can-break-with-a-value.html" - -[[versions.features]] -title = "numeric fields in struct expressions and patterns" -flag = "relaxed_adts" -tracking_issue_id = 35626 - -[[versions.features]] -title = "non-capturing closure to function pointer coercion" -flag = "closure_to_fn_coercion" -rfc_id = 1558 -tracking_issue_id = 39817 -stabilization_pr_id = 42162 - -[[versions.features]] -title = "`eprint!`" -slug = "eprint" -impl_pr_id = 41192 - -[[versions.features]] -title = "`eprintln!`" -slug = "eprintln" -rfc_id = 1869 -impl_pr_id = 41192 -tracking_issue_id = 40528 - -[[versions]] -number = "1.18" -blog_post_path = "2017/06/08/Rust-1.18.html" -gh_milestone_id = 35 - -[[versions.features]] -title = "`pub(restricted)` visibilities" -flag = "pub_restricted" -rfc_id = 1422 -tracking_issue_id = 32409 -stabilization_pr_id = 40556 -edition_guide_path = "rust-2018/module-system/more-visibility-modifiers.html" -items = ["pub(crate)", "pub(super)", "pub(in m)"] - -[[versions.features]] -title = "`#![windows_subsystem]`" -flag = "windows_subsystem" -tracking_issue_id = 37499 - -[[versions]] -number = "1.17" -blog_post_path = "2017/04/27/Rust-1.17.html" -gh_milestone_id = 34 - -[[versions.features]] -title = "elision of `'static` lifetimes in `static`s and `const`s" -flag = "static_in_const" -rfc_id = 1623 -tracking_issue_id = 35897 -stabilization_pr_id = 39265 -edition_guide_path = "rust-2018/ownership-and-lifetimes/simpler-lifetimes-in-static-and-const.html" - -[[versions.features]] -title = "field init shorthands (`x` for `x: x` in struct initializers)" -flag = "field_init_shorthand" -rfc_id = 1682 -tracking_issue_id = 37340 -stabilization_pr_id = 39761 -edition_guide_path = "rust-2018/data-types/field-init-shorthand.html" - -[[versions.features]] -title = "recursive static items" -flag = "static_recursion" -tracking_issue_id = 29719 -stabilization_pr_id = 40027 - -[[versions.features]] -title = "`Self` in the where clause of trait impl's" -slug = "where_clauses_with_self" -rfc_id = 1647 -tracking_issue_id = 38864 - -[[versions.features]] -title = "`Cell` with non-`Copy` types" -flag = "cell_non_copy" -rfc_id = 1651 -impl_pr_id = 39793 - -[[versions]] -number = "1.16" -blog_post_path = "2017/03/16/Rust-1.16.html" -gh_milestone_id = 33 - -[[versions.features]] -title = "`Self` in struct expressions and patterns" -slug = "self_struct_expr_pat" -tracking_issue_id = 37544 -stabilization_pr_id = 39282 - -[[versions.features]] -title = "associated types in struct expressions and patterns" -slug = "assoc_ty_struct_expr_pat" -tracking_issue_id = 37544 -stabilization_pr_id = 39282 - -[[versions.features]] -title = "`writeln!` without arguments" -slug = "writeln_no_args" -impl_pr_id = 38469 - -#[[versions.features]] -#flag = "more_struct_aliases" -#tracking_issue_id = 37544 - -#[[versions.features]] -#title = "cargo check" - -[[versions]] -number = "1.15" -blog_post_path = "2017/02/02/Rust-1.15.html" - -[[versions.features]] -title = "procedural derive macros (macros 1.1)" -slug = "proc_macro_derive" -flag = "proc_macro" -rfc_id = 1681 -tracking_issue_id = 35900 - -#[[versions.features]] -#flag = "item_like_imports" -#rfc_id = 1560 -#tracking_issue_id = 35120 - -[[versions]] -number = "1.14" -blog_post_path = "2016/12/22/Rust-1.14.html" - -[[versions.features]] -title = "`..` in tuple (struct) patterns" -flag = "dotdot_in_tuple_patterns" -rfc_id = 1492 -tracking_issue_id = 33627 -stabilization_pr_id = 36843 - -[[versions.features]] -title = "`fn` pointer to `unsafe fn` pointer coercion" -slug = "fn_ptr_to_unsafe_fn_ptr" -impl_pr_id = 37389 - -[[versions.features]] -title = "`println!` without arguments" -slug = "println_no_args" -impl_pr_id = 36825 - -[[versions]] -number = "1.13" -blog_post_path = "2016/11/10/Rust-1.13.html" - -[[versions.features]] -title = "`macro_rules!` macros in type position" -flag = "type_macros" -tracking_issue_id = 27245 - -[[versions.features]] -title = "the `?` operator" -flag = "question_mark" -rfc_id = 243 -impl_pr_id = 31954 -tracking_issue_id = 31436 -stabilization_pr_id = 36995 -edition_guide_path = "rust-2018/error-handling-and-panics/the-question-mark-operator-for-easier-error-handling.html" - -[[versions.features]] -title = "`assert_ne!`" -slug = "assert_ne" -rfc_id = 1653 -impl_pr_id = 35074 -tracking_issue_id = 35073 - -[[versions.features]] -title = "`debug_assert_ne!`" -slug = "debug_assert_ne" -rfc_id = 1653 -impl_pr_id = 35074 -tracking_issue_id = 35073 - -[[versions]] -number = "1.12" -blog_post_path = "2016/09/29/Rust-1.12.html" - -[[versions]] -number = "1.11" -blog_post_path = "2016/08/18/Rust-1.11.html" - -[[versions]] -number = "1.10" -blog_post_path = "2016/07/07/Rust-1.10.html" - -[[versions]] -number = "1.9" -blog_post_path = "2016/05/26/Rust-1.9.html" - -[[versions.features]] -title = "`#[deprecated]`" -flag = "deprecated" -rfc_id = 1270 -tracking_issue_id = 29935 -stabilization_pr_id = 32804 - -[[versions]] -number = "1.8" -blog_post_path = "2016/04/14/Rust-1.8.html" - -[[versions.features]] -title = "assignment operator overloading" -flag = "augmented_assignments" -tracking_issue_id = 28235 -edition_guide_path = "rust-2018/data-types/operator-equals-are-now-implementable.html" -items = [ - "ops::AddAssign", - "ops::BitAndAssign", - "ops::BitOrAssign", - "ops::BitXorAssign", - "ops::DivAssign", - "ops::MulAssign", - "ops::RemAssign", - "ops::ShlAssign", - "ops::ShrAssign", -] - -[[versions.features]] -title = "empty structs and enum variants with braces" -flag = "braced_empty_structs" -rfc_id = 218 -tracking_issue_id = 29720 - -[[versions]] -number = "1.7" -blog_post_path = "2016/03/02/Rust-1.7.html" - -[[versions]] -number = "1.6" -blog_post_path = "2016/01/21/Rust-1.6.html" -gh_milestone_id = 28 - -[[versions.features]] -title = "`#![no_std]`" -flag = "no_std" - -[[versions]] -number = "1.5" -blog_post_path = "2015/12/10/Rust-1.5.html" -gh_milestone_id = 27 - -[[versions]] -number = "1.4" -blog_post_path = "2015/10/29/Rust-1.4.html" -gh_milestone_id = 26 - -[[versions.features]] -title = "item renamings in import groups" -slug = "use_group_renaming" - -[[versions]] -number = "1.3" -blog_post_path = "2015/09/17/Rust-1.3.html" -#gh_milestone_id = 24 - -[[versions]] -number = "1.2" -blog_post_path = "2015/08/06/Rust-1.2.html" -#gh_milestone_id = 25 - -[[versions.features]] -title = "`iter::once`" -slug = "iter_once" - -[[versions.features]] -title = "`iter::empty`" -slug = "iter_empty" - -[[versions.features]] -title = "`Send` implementation for `AtomicPtr`" -slug = "atomic_ptr_send" - -[[versions]] -number = "1.1" -blog_post_path = "2015/06/25/Rust-1.1.html" -#gh_milestone_id = 23 - -[[versions]] -number = "1.0" -blog_post_path = "2015/05/15/Rust-1.0.html" -gh_milestone_id = 20 - -[[versions.features]] -title = "associated types in traits" -flag = "associated_types" - -[[versions.features]] -title = "type parameter defaults" -flag = "default_type_params" - -#[[versions.features]] -#flag = "globs" - -[[versions.features]] -title = "`macro_rules!`" -flag = "macro_rules" - -[[versions.features]] -title = "`&foo[a..b]` as slicing syntax" -flag = "slicing_syntax" - -[[versions.features]] -title = "struct variants in enums" -flag = "struct_variant" - -[[versions.features]] -title = "tuple indexing" -flag = "tuple_indexing" - -[[versions.features]] -title = "`if let` expressions" -flag = "if_let" - -[[versions.features]] -title = "`while let` expressions" -flag = "while_let" - -[unstable] - -[[unstable.features]] -title = "`#[link_args]`" -flag = "link_args" -tracking_issue_id = 29596 -unstable_book_path = "language-features/link-args.html" - -[[unstable.features]] -title = "non-ASCII identifiers" -flag = "non_ascii_idents" -tracking_issue_id = 55467 -unstable_book_path = "language-features/non-ascii-idents.html" - -[[unstable.features]] -title = "`#[plugin_registrar]`" -flag = "plugin_registrar" -tracking_issue_id = 29597 -unstable_book_path = "language-features/plugin-registrar.html" - -[[unstable.features]] -title = "`#![plugin(...)]`" -flag = "plugin" -tracking_issue_id = 29597 -unstable_book_path = "language-features/plugin.html" - -[[unstable.features]] -title = "`#[thread_local]` on `static`s" -flag = "thread_local" -tracking_issue_id = 29594 - -[[unstable.features]] -title = "default values for associated types" -flag = "associated_type_defaults" -tracking_issue_id = 29661 - -[[unstable.features]] -title = "`#![no_core]`" -flag = "no_core" -tracking_issue_id = 29639 - -[[unstable.features]] -title = "type ascription" -flag = "type_ascription" -rfc_id = 803 -tracking_issue_id = 23416 - -[[unstable.features]] -title = "specialization" -flag = "specialization" -tracking_issue_id = 31844 - -[[unstable.features]] -title = "`#[naked]` functions" -flag = "naked_functions" -tracking_issue_id = 32408 - -[[unstable.features]] -title = "`cfg(target_has_atomic = ...)`" -flag = "cfg_target_has_atomic" -tracking_issue_id = 32976 - -[[unstable.features]] -title = "exclusive range patterns (`a..b`)" -flag = "exclusive_range_pattern" -tracking_issue_id = 37854 - -[[unstable.features]] -title = "the never type (`!`)" -flag = "never_type" -tracking_issue_id = 35121 - -[[unstable.features]] -title = "exhaustive pattern matching on types that contain uninhabited types" -flag = "exhaustive_patterns" -tracking_issue_id = 51085 -stabilization_pr_id = 56362 - -[[unstable.features]] -title = "types with a custom `Drop` implementation in `union`s" -flag = "untagged_unions" -slug = "drop_types_in_union" -tracking_issue_id = 55149 - -[[unstable.features]] -title = "`#[link(..., cfg(...))]`" -flag = "link_cfg" -tracking_issue_id = 37406 - -[[unstable.features]] -title = "constants in array repeat expressions" -flag = "const_in_array_repeat_expressions" -rfc_id = 2203 -tracking_issue_id = 49147 - -[[unstable.features]] -title = "half-open range patterns" -flag = "half_open_range_patterns" -impl_pr_id = 67258 -tracking_issue_id = 67264 -items = [ - "X..", - "..X", - "..=X", -] - -[[unstable.features]] -title = "generic associated types (GAT)" -flag = "generic_associated_types" -rfc_id = 1598 -tracking_issue_id = 44265 - -[[unstable.features]] -title = "const generics" -flag = "const_generics" -rfc_id = 2000 -tracking_issue_id = 44580 - -[[unstable.features]] -title = "the raw reference operator (`&raw [mut | const] $place`)" -flag = "raw_ref_op" -rfc_id = 2582 -tracking_issue_id = 64490 -impl_pr_id = 64588