Skip to content
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

Use nonmax::NonMax* types in Option where possible #2681

Merged
merged 1 commit into from
Jan 2, 2024

Conversation

GnomedDev
Copy link
Member

@GnomedDev GnomedDev commented Jan 2, 2024

Swaps fields that store Option<Int> for Option<NonMaxInt> where the maximum value would be ludicrous. Since nonmax uses NonZero internally, this gives us niche opts, so model sizes can drop some more. https://www.diffchecker.com/Hr8ZqANM/

I've had to include a workaround for LPGhatguy/nonmax#17 in optional_string by making my own TryFrom<u64>, so that should be removable once that issue is fixed.

@github-actions github-actions bot added model Related to the `model` module. examples Related to Serenity's examples. labels Jan 2, 2024
@GnomedDev
Copy link
Member Author

Thanks to @TestingPlant on the Rust Community Server for the idea to use nonmax, by the way.

@arqunis arqunis added enhancement An improvement to Serenity. breaking change The public API is changed, resulting in miscompilations or unexpected new behaviour for users labels Jan 2, 2024
@arqunis arqunis merged commit cf3d911 into serenity-rs:next Jan 2, 2024
22 checks passed
@GnomedDev GnomedDev deleted the nonmax branch January 2, 2024 20:08
arqunis pushed a commit to arqunis/serenity that referenced this pull request Jan 2, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
arqunis pushed a commit to arqunis/serenity that referenced this pull request Jan 5, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
arqunis pushed a commit to arqunis/serenity that referenced this pull request Jan 16, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
arqunis pushed a commit to arqunis/serenity that referenced this pull request Jan 22, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Feb 9, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
arqunis pushed a commit to arqunis/serenity that referenced this pull request Mar 1, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 10, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 11, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 11, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Mar 13, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 13, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Mar 19, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Mar 19, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 21, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 25, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 29, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Mar 31, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Mar 31, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Apr 1, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request May 14, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request May 14, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request May 23, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request May 28, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Jun 9, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
GnomedDev added a commit that referenced this pull request Jun 22, 2024
This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[#17]: LPGhatguy/nonmax#17
GnomedDev added a commit to GnomedDev/serenity that referenced this pull request Jun 22, 2024
…rs#2681)

This swaps fields that store `Option<Int>` for `Option<NonMaxInt>` where the
maximum value would be ludicrous. Since `nonmax` uses `NonZero` internally,
this gives us niche optimisations, so model sizes can drop some more.

I have had to include a workaround for [serenity-rs#17] in `optional_string` by making my
own `TryFrom<u64>`, so that should be removable once that issue is fixed.

[serenity-rs#17]: LPGhatguy/nonmax#17
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. examples Related to Serenity's examples. model Related to the `model` module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants