Commit Graph

85 Commits

Author SHA1 Message Date
Gilad Naaman 923a5f2386 Automatically enable const evaluation
When running on a compiler newer than 1.65,
automatically enable usage of the macro in const contexts.

Closes https://github.com/Gilnaa/memoffset/issues/4
2022-12-11 21:53:36 +02:00
Gilad Naaman eb2a79cb6d Update docs WRT repr(Rust) (#69)
Issue:
 - https://github.com/Gilnaa/memoffset/issues/59
2022-10-16 16:49:41 +02:00
Gilad Naaman af6689589f Add some compile-fail tests. (#68)
Ticket:
 - https://github.com/Gilnaa/memoffset/issues/23
2022-10-10 21:00:44 +02:00
Gilad Naaman 6a48918fd1 Update src/raw_field.rs
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-10-10 20:46:09 +03:00
Gilad Naaman b17ae388df Update src/offset_of.rs
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-10-10 20:45:55 +03:00
Gilad Naaman 71c39fbdfb Support unions in offset_of(_union) 2022-10-10 17:48:18 +03:00
yvt 2a74b62c26 Suppress clippy::unneeded_wildcard_pattern (#64) 2022-02-23 22:19:16 -05:00
yvt 42483952ce Remove #![feature(const_raw_ptr_deref)]
It's now stable in nightly.
2021-12-03 22:22:23 +09:00
yvt 4c71bed98d Remove #![feature(const_maybe_uninit_as_ptr)]
It's now stable in nightly.
2021-12-03 22:21:14 +09:00
Aleksey Kladov db56a2d8ce Modernize doc examples to use idiomatic Rust 2021-11-12 13:34:44 +03:00
Ralf Jung 7c247a4c36 update feature flags and docs for const offset_of 2021-03-28 18:59:07 +02:00
Ralf Jung bf9450ea19 fix build on old rustc 2021-03-27 15:30:05 +01:00
Ralf Jung 4746d5a0a8 move mem and ptr into __priv 2021-03-27 15:26:49 +01:00
Ralf Jung 5f9e008def avoid use of size_of_val in span_of 2021-03-27 15:21:43 +01:00
Ralf Jung ca3425e81a rename _memoffset_offset_from macro to reflect that it is unsafe to call 2021-03-26 09:52:02 +01:00
Ralf Jung e66b61937d avoid putting user code inside unsafe blocks 2021-03-26 00:01:10 +01:00
Boqun Feng 576166bb63 Use stablilized addr_of! macro (#50)
Since Rust 1.51.0, support for macro addr_of! has been stabilized[1],
and this provides a way to get a raw pointer without potential UB in
some cases.

Memoffset alreadly uses the feature at the pre-stablilized stage (the
macro was named as raw_const! then). Therefore, switch to use the
stablilized version (and name) if Rust 1.51.0 and above is used,
otherwise use the original fallback version, which works in a less
technically correct way.

[1]: https://github.com/rust-lang/rust/pull/72279

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
2021-03-08 19:56:59 +01:00
Andrew Gaspar 5f8f5a6b9e Support tuples in offset_of (#48)
Support tuple types via new offset_of_tuple / raw_field_tuple macros
2020-10-23 09:16:25 +02:00
Ralf Jung bcf50b5cdd use MaybeUninit::as_ptr instead of transmute 2020-08-09 18:44:38 +02:00
Roland 9520967b00 Remove const_transmute feature dependency (#45)
Remove `const_transmute` feature flag

`const_transmute` has been stabilized on current nightly, see https://github.com/rust-lang/rust/pull/72920.
Document `const_fn_transmute` requirement when using `offset_of!` inside a `const fn`.
Add test for `offset_of!` inside a `const fn`.
2020-07-31 00:21:18 +02:00
Ralf Jung 782c7d4408 fix allow_clippy 2020-06-22 10:43:53 +02:00
Ralf Jung 6098248fd4 share more code in raw_field 2020-06-22 10:07:50 +02:00
Ralf Jung a1a14b8120 factor difference between const and non-const into sub-macro 2020-06-22 10:06:53 +02:00
Ralf Jung 8c8900af68 make the const variant closer to the normal variant (just the offset part is different) 2020-06-21 12:12:34 +02:00
Ralf Jung eb7f7554ef span_of: use raw_field macro for more safety 2020-06-21 12:00:25 +02:00
Ralf Jung b5e7f3febb move raw_field macro to its own file 2020-06-21 11:53:48 +02:00
Ralf Jung a6b5aec20f fmt 2020-06-20 15:02:40 +02:00
Ralf Jung 8c5200e9e2 add support for using raw_ref macros 2020-06-20 14:23:50 +02:00
Ralf Jung e002a54759 rustfmt 2020-03-16 17:33:13 +01:00
Ralf Jung 81a6523a09 avoid accessing libcore for compat with old Rust versions 2020-03-16 17:33:08 +01:00
Ralf Jung 497aded88d add raw_field macro to compute raw ptr to field 2020-03-16 17:02:11 +01:00
AnthonyMikh 3e5dcf2b1d Fix a typo in comment 2020-03-10 02:07:14 +03:00
Ralf Jung 184f360863 Merge pull request #36 from RalfJung/miri
better way to ignore tests in Miri
2019-12-11 16:44:56 +01:00
Ralf Jung d3f5f23483 Merge pull request #35 from RalfJung/allow-clippy
allow clippy lint
2019-12-07 13:21:12 +01:00
Ralf Jung 6a2923359e better way to ignore tests in Miri 2019-12-07 12:17:22 +01:00
Ralf Jung 13bc1f51a8 allow clippy lint only on recent enough compilers 2019-11-17 20:47:03 +01:00
Ralf Jung 3415814930 remove redundant namespacing from some features 2019-11-17 20:45:27 +01:00
Gilad Naaman 425477dc5b Added impl for constant offset_of 2019-11-16 22:34:38 +02:00
Ralf Jung 5a617d7cc5 allow clippy lint 2019-11-16 21:30:32 +01:00
Gilad Naaman ef0d8a7bf9 Fixed build for old nightlies where doctests were not present. 2019-11-07 18:43:17 +02:00
Gilad Naaman c14a163376 Merge pull request #28 from RalfJung/comment
remove confusing comment
2019-08-29 07:02:08 +03:00
Ralf Jung 75e308cda6 Merge pull request #27 from Amanieu/path
Change the struct parameter from a tt to a path.
2019-08-28 20:13:23 +02:00
Ralf Jung d7070d4b25 remove confusing comment 2019-08-28 20:11:08 +02:00
Amanieu d'Antras 86689325ee Change the struct parameter from a tt to a path.
This allows name paths with :: to be passed in.
2019-08-28 17:07:38 +01:00
Maarten de Vries f393002504 Update library documentation to reflect removal of const implementation. 2019-08-28 15:45:59 +02:00
Ralf Jung 28021da8ec explain why we do not have deref coercion problems 2019-08-10 15:11:59 +02:00
Ralf Jung 564d4a6c11 fmt 2019-08-10 11:59:57 +02:00
Ralf Jung a614a209ab no need to use NonNull 2019-08-10 11:59:47 +02:00
Ralf Jung 2931fc3024 test README only on nightly, so that it can be a dev-dependency 2019-08-10 11:43:04 +02:00
Ralf Jung 5abf873462 fix testing README and fix README tests 2019-08-10 11:12:48 +02:00