Skip to content

Commit f774596

Browse files
refactor: Derive Default for enums
As of Rust 1.62, enums can use `#[derive(Default)]`. See <rust-lang/rust#94457>.
1 parent 41d8b0a commit f774596

File tree

3 files changed

+8
-28
lines changed

3 files changed

+8
-28
lines changed

fluent-bundle/examples/custom_type.rs

+2-7
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,16 @@ use fluent_bundle::{FluentArgs, FluentBundle, FluentResource, FluentValue};
2121
// - timeStyle
2222
//
2323
// with an enum of allowed values.
24-
#[derive(Debug, PartialEq, Eq, Clone, Hash)]
24+
#[derive(Debug, Default, PartialEq, Eq, Clone, Hash)]
2525
enum DateTimeStyleValue {
2626
Full,
2727
Long,
2828
Medium,
2929
Short,
30+
#[default]
3031
None,
3132
}
3233

33-
impl std::default::Default for DateTimeStyleValue {
34-
fn default() -> Self {
35-
Self::None
36-
}
37-
}
38-
3934
// This is just a helper to make it easier to convert
4035
// a value provided to FluentArgs into an option value.
4136
impl<'l> From<&FluentValue<'l>> for DateTimeStyleValue {

fluent-bundle/src/types/number.rs

+4-14
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,14 @@ use intl_pluralrules::operands::PluralOperands;
88
use crate::args::FluentArgs;
99
use crate::types::FluentValue;
1010

11-
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
11+
#[derive(Debug, Copy, Clone, Default, Hash, PartialEq, Eq)]
1212
pub enum FluentNumberStyle {
13+
#[default]
1314
Decimal,
1415
Currency,
1516
Percent,
1617
}
1718

18-
impl std::default::Default for FluentNumberStyle {
19-
fn default() -> Self {
20-
Self::Decimal
21-
}
22-
}
23-
2419
impl From<&str> for FluentNumberStyle {
2520
fn from(input: &str) -> Self {
2621
match input {
@@ -32,19 +27,14 @@ impl From<&str> for FluentNumberStyle {
3227
}
3328
}
3429

35-
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
30+
#[derive(Debug, Copy, Clone, Default, Hash, PartialEq, Eq)]
3631
pub enum FluentNumberCurrencyDisplayStyle {
32+
#[default]
3733
Symbol,
3834
Code,
3935
Name,
4036
}
4137

42-
impl std::default::Default for FluentNumberCurrencyDisplayStyle {
43-
fn default() -> Self {
44-
Self::Symbol
45-
}
46-
}
47-
4838
impl From<&str> for FluentNumberCurrencyDisplayStyle {
4939
fn from(input: &str) -> Self {
5040
match input {

fluent-bundle/tests/custom_types.rs

+2-7
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,16 @@ fn fluent_custom_type() {
4747

4848
#[test]
4949
fn fluent_date_time_builtin() {
50-
#[derive(Debug, PartialEq, Clone)]
50+
#[derive(Debug, Default, PartialEq, Clone)]
5151
enum DateTimeStyleValue {
5252
Full,
5353
Long,
5454
Medium,
5555
Short,
56+
#[default]
5657
None,
5758
}
5859

59-
impl std::default::Default for DateTimeStyleValue {
60-
fn default() -> Self {
61-
Self::None
62-
}
63-
}
64-
6560
impl<'l> From<&FluentValue<'l>> for DateTimeStyleValue {
6661
fn from(input: &FluentValue) -> Self {
6762
if let FluentValue::String(s) = input {

0 commit comments

Comments
 (0)