// run-pass | |
use std::marker::PhantomData; | |
pub trait DataBind { | |
type Data; | |
} | |
impl<T> DataBind for Global<T> { | |
type Data = T; | |
} | |
pub struct Global<T>(PhantomData<T>); | |
pub struct Data { | |
pub offsets: <Global<[u32; 2]> as DataBind>::Data, | |
} | |
fn create_data() -> Data { | |
let mut d = Data { offsets: [1, 2] }; | |
d.offsets[0] = 3; | |
d | |
} | |
fn main() { | |
let d = create_data(); | |
assert_eq!(d.offsets[0], 3); | |
assert_eq!(d.offsets[1], 2); | |
} |