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

Add bincode enc/dec support to ArrayVec #184

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

iantbutler01
Copy link

Adds enc/dec support to tinyvec's ArrayVec for bincode, https://github.com/bincode-org/bincode.

@Lokathor
Copy link
Owner

I'm unclear why CI is failing to select a version to build with.

Also, I'm a little concerned with supporting major version 2 in particular, if say a version 3 comes out in a year. Is it possible to eventually support more than one major version using optional dependencies or things like that?

Even if we do want to just support version 2, we'd have to wait for them to do a stable full release, because (i think?) pre-release versions aren't compatible with each other or with the full version.

@iantbutler01
Copy link
Author

I'm not entirely certain why CI isn't working either. Probably cold comfort when I say tests passed on my machine 😆 I'll look into it when I have some more time here.

In terms of them having major releases every year that induce breaking changes due to their public interface radically changing. First I hope they don't do that, but if they do, I don't see why it couldn't be supported via optional dependencies and a set of flags "bincode2", "bincode3" and so on.

Overall I understand the hesitance. I'm happy to come back to update this PR when the stable 2.0 releases and discuss further. The release sounded fairly imminent when I was deciding on 2.0 v 1.0 in any case.

@Lokathor
Copy link
Owner

Can you optionally depend on a crate more than once? I'm not familiar with the details of what's allowed there.

@iantbutler01
Copy link
Author

I need to dig in further when I'm off the clock from my day job, but it looks like you can specify multiple optional dependencies with the same package, by providing the package key in the cargo toml.

Ex:

bincode2 = { version = "2.0.0-rc.3", optional = true, package="bincode" }
bincode1 = { version = "1.x.x", optional = true, package="bincode" }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants