rust_extra/offsetOf.rs
1// This file is part of rust-extra. It is subject to the license terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/rust-extra/master/COPYRIGHT. No part of rust-extra, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file.
2// Copyright © 2016 The developers of rust-extra. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/rust-extra/master/COPYRIGHT.
3
4
5#[macro_export]
6macro_rules! offsetOf
7{
8 ($structType:ty, $field:ident) =>
9 {
10 #[allow(trivial_casts)]
11 unsafe
12 {
13 &(*(0 as *const $structType)).$field as *const _ as isize
14 }
15 }
16}