mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
28 lines
531 B
Rust
28 lines
531 B
Rust
// run-pass
|
|
#![allow(dead_code)]
|
|
|
|
#[derive(Copy, Clone)]
|
|
struct LM { resize_at: usize, size: usize }
|
|
|
|
enum HashMap<K,V> {
|
|
HashMap_(LM, Vec<(K,V)>)
|
|
}
|
|
|
|
fn linear_map<K,V>() -> HashMap<K,V> {
|
|
HashMap::HashMap_(LM{
|
|
resize_at: 32,
|
|
size: 0}, Vec::new())
|
|
}
|
|
|
|
impl<K,V> HashMap<K,V> {
|
|
pub fn len(&mut self) -> usize {
|
|
match *self {
|
|
HashMap::HashMap_(ref l, _) => l.size
|
|
}
|
|
}
|
|
}
|
|
|
|
pub fn main() {
|
|
let mut m: Box<_> = Box::new(linear_map::<(),()>());
|
|
assert_eq!(m.len(), 0);
|
|
}
|