31 lines
514 B
Rust
31 lines
514 B
Rust
use std::mem::size_of;
|
|
|
|
struct S<U, V> {
|
|
_u: U,
|
|
size_of_u: usize,
|
|
_v: V,
|
|
size_of_v: usize
|
|
}
|
|
|
|
impl<U, V> S<U, V> {
|
|
fn new(u: U, v: V) -> Self {
|
|
S {
|
|
_u: u,
|
|
size_of_u: size_of::<U>(),
|
|
_v: v,
|
|
size_of_v: size_of::<V>()
|
|
}
|
|
}
|
|
}
|
|
|
|
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);
|
|
}
|