2017-02-10 10:00:28 -06:00
|
|
|
use std::mem::size_of;
|
|
|
|
|
|
|
|
struct S<U, V> {
|
|
|
|
_u: U,
|
|
|
|
size_of_u: usize,
|
|
|
|
_v: V,
|
2022-06-20 18:00:37 -05:00
|
|
|
size_of_v: usize,
|
2017-02-10 10:00:28 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
impl<U, V> S<U, V> {
|
|
|
|
fn new(u: U, v: V) -> Self {
|
2022-06-20 18:00:37 -05:00
|
|
|
S { _u: u, size_of_u: size_of::<U>(), _v: v, size_of_v: size_of::<V>() }
|
2017-02-10 10:00:28 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<V, U> Drop for S<U, V> {
|
|
|
|
fn drop(&mut self) {
|
|
|
|
assert_eq!(size_of::<U>(), self.size_of_u);
|
|
|
|
assert_eq!(size_of::<V>(), self.size_of_v);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
S::new(0u8, 1u16);
|
|
|
|
}
|