mirror of
https://github.com/Lokathor/bytemuck.git
synced 2024-11-21 22:32:23 +00:00
111 lines
3.3 KiB
TOML
111 lines
3.3 KiB
TOML
[package]
|
|
name = "bytemuck"
|
|
description = "A crate for mucking around with piles of bytes."
|
|
version = "1.20.0"
|
|
authors = ["Lokathor <zefria@gmail.com>"]
|
|
repository = "https://github.com/Lokathor/bytemuck"
|
|
readme = "README.md"
|
|
keywords = ["transmute", "bytes", "casting"]
|
|
categories = ["encoding", "no-std"]
|
|
edition = "2018"
|
|
license = "Zlib OR Apache-2.0 OR MIT"
|
|
exclude = ["/pedantic.bat"]
|
|
|
|
[features]
|
|
# In v2 we'll fix these names to be more "normal".
|
|
|
|
# Enable deriving the various `bytemuck` traits.
|
|
derive = ["bytemuck_derive"]
|
|
# Enable features requiring items from `extern crate alloc`.
|
|
extern_crate_alloc = []
|
|
# Enable features requiring items from `extern crate std`.
|
|
extern_crate_std = ["extern_crate_alloc"]
|
|
# Implement `Zeroable` for `MaybeUninit`.
|
|
zeroable_maybe_uninit = []
|
|
# Implement `Zeroable` for `std::sync::atomic` types.
|
|
zeroable_atomics = []
|
|
|
|
# All MSRV notes below are GUIDELINES and future versions may require even more
|
|
# MSRV on any feature.
|
|
|
|
# MSRV 1.36: Use `align_offset` method instead of casting to `usize` to check
|
|
# alignment of pointers, this *may* improve codegen in some cases (but it has
|
|
# never been formally benchmarked!)
|
|
align_offset = []
|
|
|
|
min_const_generics = [] # MSRV 1.51: support arrays via min_const_generics
|
|
|
|
wasm_simd = [] # MSRV 1.54.0: support wasm simd types
|
|
aarch64_simd = [] # MSRV 1.59.0: support aarch64 simd types
|
|
|
|
must_cast = [] # MSRV 1.64.0: support the `must` module.
|
|
|
|
# Adds `TransparentWrapper` impls for stdlib types newer than bytemuck's base MSRV.
|
|
# Current MSRV 1.74.0: `core::num::Saturating`.
|
|
# MSRV may increase if impls are added for newer types.
|
|
transparentwrapper_extra = []
|
|
|
|
const_zeroed = [] # MSRV 1.75.0: support const `zeroed()`
|
|
|
|
alloc_uninit = [] # MSRV 1.82.0: support `zeroed_*rc*`
|
|
|
|
# Do not use if you can avoid it, because this is **unsound**!!!!
|
|
unsound_ptr_pod_impl = []
|
|
|
|
# MSRV 1.46.0: adds the `#[track_caller]` attribute to functions which may panic
|
|
track_caller = []
|
|
|
|
# Enables all features that are both sound and supported on the latest stable
|
|
# version of Rust, with the exception of `extern_crate_alloc` and
|
|
# `extern_crate_std`.
|
|
# Note: Enabling this feature opts out of any MSRV guarantees!
|
|
latest_stable_rust = [
|
|
# Keep this list sorted.
|
|
"aarch64_simd",
|
|
"align_offset",
|
|
"alloc_uninit",
|
|
"const_zeroed",
|
|
"derive",
|
|
"min_const_generics",
|
|
"must_cast",
|
|
"track_caller",
|
|
"wasm_simd",
|
|
"zeroable_atomics",
|
|
"zeroable_maybe_uninit",
|
|
]
|
|
|
|
# ALL FEATURES BELOW THIS ARE NOT SEMVER SUPPORTED! TEMPORARY ONLY!
|
|
|
|
# Enable support for `std::simd` types.
|
|
nightly_portable_simd = []
|
|
# Enable support for unstable `std::arch` types (such as the AVX512 types).
|
|
nightly_stdsimd = []
|
|
# Enable `f16` and `f128`
|
|
nightly_float = []
|
|
|
|
# Improved documentation using the nightly toolchain
|
|
nightly_docs = []
|
|
|
|
[dependencies]
|
|
bytemuck_derive = { version = "1.4", path = "derive", optional = true }
|
|
|
|
[lints.rust]
|
|
unexpected_cfgs = { level = "deny", check-cfg = ['cfg(target_arch, values("spirv"))'] }
|
|
|
|
[package.metadata.docs.rs]
|
|
# Note(Lokathor): Don't use all-features or it would use `unsound_ptr_pod_impl` too.
|
|
features = [
|
|
"nightly_docs",
|
|
"latest_stable_rust",
|
|
"extern_crate_alloc",
|
|
"extern_crate_std",
|
|
]
|
|
|
|
[package.metadata.playground]
|
|
# Note(Lokathor): Don't use all-features or it would use `unsound_ptr_pod_impl` too.
|
|
features = [
|
|
"latest_stable_rust",
|
|
"extern_crate_alloc",
|
|
"extern_crate_std",
|
|
]
|