• gsfraley@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago

    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.