Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
For those interested, this is because of how Rust uses value gaps to represent its nullable/enum structures. E.g., like how None for Option NonZeroU8 [sic, can’t get formatting to work] is represented internally by a 0 instead of a wrapping structure.
When you have that many layers around a unit, it will start at 0 and bump the internal representation for each Some you turn into a None.
For those interested, this is because of how Rust uses value gaps to represent its nullable/enum structures. E.g., like how
None
forOption NonZeroU8
[sic, can’t get formatting to work] is represented internally by a0
instead of a wrapping structure.When you have that many layers around a unit, it will start at
0
and bump the internal representation for eachSome
you turn into aNone
.It’s kinda like lambda calculus numbers