-
Notifications
You must be signed in to change notification settings - Fork 593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Preserve values for unknown enum variants #2008
Merged
nickelc
merged 1 commit into
serenity-rs:next
from
nickelc:macro/enum_number+unknown-value
Jun 24, 2022
Merged
Preserve values for unknown enum variants #2008
nickelc
merged 1 commit into
serenity-rs:next
from
nickelc:macro/enum_number+unknown-value
Jun 24, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
nickelc
added
enhancement
An improvement to Serenity.
breaking change
The public API is changed, resulting in miscompilations or unexpected new behaviour for users
labels
Jun 23, 2022
|
nickelc
added a commit
that referenced
this pull request
Jun 24, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
nickelc
added a commit
to nickelc/serenity
that referenced
this pull request
Jul 4, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
nickelc
added a commit
to nickelc/serenity
that referenced
this pull request
Jul 4, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
arqunis
pushed a commit
to arqunis/serenity
that referenced
this pull request
Jul 20, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
arqunis
pushed a commit
to arqunis/serenity
that referenced
this pull request
Aug 21, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
arqunis
pushed a commit
to arqunis/serenity
that referenced
this pull request
Sep 2, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
kangalio
pushed a commit
to kangalio/serenity
that referenced
this pull request
Sep 11, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
Oct 1, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
Nov 7, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
arqunis
pushed a commit
to arqunis/serenity
that referenced
this pull request
Nov 13, 2022
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
Feb 28, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
May 18, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
May 30, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
Sep 21, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
Oct 17, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
mkrasnitski
pushed a commit
to mkrasnitski/serenity
that referenced
this pull request
Oct 24, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
arqunis
pushed a commit
to arqunis/serenity
that referenced
this pull request
Oct 24, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
arqunis
pushed a commit
to arqunis/serenity
that referenced
this pull request
Oct 24, 2023
The `enum_number!` macro now takes the whole enum definition and generates `From` trait implementations to convert a value to the enum and back. The implementations can then be picked up by `serde` with `#[serde(from = "u8", into = "u8")]` to (de)serialize the types. ``` enum_number! { #[derive(Clone, Copy, Debug, Deserialize, Serialize)] #[serde(from = "u8", into = "u8")] pub enum Foo { A = 1, B = 2, _ => Unknown(u8), } } ``` BREAKING CHANGE: The `Unknown` variant now takes the unknown value and the removed `fn num() -> u64` method can be replaced with `let v = u8::from(kind)`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
breaking change
The public API is changed, resulting in miscompilations or unexpected new behaviour for users
enhancement
An improvement to Serenity.
model
Related to the `model` module.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
enum_number!
macro now takes the whole enum definition and generatesFrom
trait implementations to convert a value to the enum and back.The implementations can then be picked up by
serde
with#[serde(from = "u8", into = "u8")]
to (de)serialize the types.BREAKING CHANGE: The
Unknown
variant now takes the unknown valueand the removed
fn num() -> u64
method can be replacedwith
let v = u8::from(kind)
.