Cargo Features
pauli_tracker has no features set by default.
[dependencies]
pauli_tracker = { version = "0.4.5", features = ["circuit", "experimental", "serde", "bitvec", "bitvec_simd", "bit-vec"] }
- circuit
-
Enables rand
Affects
pauli_tracker::circuit
… - experimental
- serde
-
Enables serde, serde of hashbrown ^0.14.0, use_serde of optional bitvec_simd, serde of optional bit-vec ^0.6.2 and optional bitvec
Features from optional dependencies
about the specified dependency version:
- we use the newest major version if possible: if we expose an item from a dependency, then bumping the dependencies major version is a breaking change, therefore, if we don't have to bump the dependency's version, we wait until we really want to increase our major version because of some other reasons
- we use the lowest possible minor version (manually search it with a binary-like search and test with
./target/debug/xtask ci locked
); this is okay because we test it in our CI (test locked) and it provides maximal flexibility to users. However, note that we are not testing all versions in the possible range from our specified minimal version to the latest version. This means that there might be versions within the allowed range that do not compile. That is in general a problem and the only way out would be to define exact versions with "=", but that is too strict. However, this kind of breakage should be rare if the libraries follow the SemVer rules, as best as possible, and users don't use stuff like wildcard imports. Specifying the lowest possible minor versions, increases the chance for such breakages, but since this is rather a SemVer failure, I think this is better then restricting when this library can be used (through too tight dependency version bounds)- we tend to use a higher patch version (because these are bug fixes or internal improvements), i.e., when adding a dependency or updating its major and/or minor versions, we select the highest possible patch version (because finding the minimal working patch version seems rather unnecessary - why would someone want to restrict a dependency to a smaller patch version (except if the patch breaks something, but then it should be fixed soon)) the above is of course unnecessary for dev-dependencies, xtask, ..., just use whatever works
- bitvec implicit feature
-
Enables bitvec
bitvec:
Addresses memory by bits, for packed collections and bitfields
- bitvec_simd implicit feature
-
Enables bitvec_simd
bitvec_simd:
bitvec with SIMD
Affects
boolean_vector::bitvec_simd
… - bit-vec implicit feature
-
Enables bit-vec ^0.6.2
bit-vec:
A vector of bits