@@ -66,13 +66,16 @@ pub enum Edition {
6666 Edition2015 ,
6767 /// The 2018 edition
6868 Edition2018 ,
69+ /// The 2021 edition
70+ Edition2021 ,
6971}
7072
7173impl fmt:: Display for Edition {
7274 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
7375 match * self {
7476 Edition :: Edition2015 => f. write_str ( "2015" ) ,
7577 Edition :: Edition2018 => f. write_str ( "2018" ) ,
78+ Edition :: Edition2021 => f. write_str ( "2021" ) ,
7679 }
7780 }
7881}
@@ -82,14 +85,15 @@ impl FromStr for Edition {
8285 match s {
8386 "2015" => Ok ( Edition :: Edition2015 ) ,
8487 "2018" => Ok ( Edition :: Edition2018 ) ,
85- s if s. parse ( ) . map_or ( false , |y : u16 | y > 2020 && y < 2050 ) => bail ! (
88+ "2021" => Ok ( Edition :: Edition2021 ) ,
89+ s if s. parse ( ) . map_or ( false , |y : u16 | y > 2021 && y < 2050 ) => bail ! (
8690 "this version of Cargo is older than the `{}` edition, \
87- and only supports `2015` and `2018 ` editions.",
91+ and only supports `2015`, `2018`, and `2021 ` editions.",
8892 s
8993 ) ,
9094 s => bail ! (
91- "supported edition values are `2015` or `2018`, but `{}` \
92- is unknown",
95+ "supported edition values are `2015`, `2018`, or `2021`, \
96+ but `{}` is unknown",
9397 s
9498 ) ,
9599 }
0 commit comments