Upgrade to value-bag 1.0.0-alpha.9 and remove by-value 128bit int conversions #504
No reviewers
Labels
No labels
bug
duplicate
easy
enhancement
help wanted
invalid
question
rfc
structured-logging
wontfix
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-rust-lang/log!504
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/128bit-refs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR upgrades our
value-bagversion to1.0.0-alpha.9, which includes a breaking change to how 128bit numbers are handled. Instead of storing them by-value we only store them by reference. Along with some other internal layout changes this reduces the size ofValuefrom 48 to 24 bytes, which is a great saving for the stack-local arrays we create to hold them.In practice this doesn't affect whether or not 128bit values can be used in the macros because they rely on the
ToValuetrait, which is always by-reference. I'd be keen to hear if anybody is relying on theFromimpls though.I'm hoping to get this through sooner rather than later in case https://github.com/rust-lang/rust/pull/95845 is merged in its current state that breaks constant type id comparison, which will mean shipping a patch to
value-bagfornightlyusers.r? @Thomasdezeeuw
We can work around the breakage if it's worth it by the way. I just carried it through to
logbecause it seemed appropriate.LGTM.
I also took a quick the changes to sval and I think I found a breaking one in
github.com/sval-rs/value-bag@3fb84ab057 (diff-2e9d962a0). It uses?in enabling feature, which is 1.60+, while log still supports 1.31 (although we could bump that).Nit: final
,.I think that macro implementation is a little iffy and it actually requires that trailing
,😄Ah well spotted! We actually only require the latest stable for the key-value API, so are ok to bump this. That feature is perfect for that library because it stitches together serialization APIs. Before I was wondering how I could ever introduce a new framework like
valuablewithout exploding the crate graph, but now that's actually possible.