//@ known-bug: #105238 | |
#![allow(incomplete_features)] | |
#![feature(generic_const_exprs)] | |
trait Ret { | |
type R; | |
} | |
struct Cond<const PRED: bool, U, V>(std::marker::PhantomData<U>, std::marker::PhantomData<V>); | |
impl<U, V> Ret for Cond<true, U, V> { | |
type R = U; | |
} | |
impl<U, V> Ret for Cond<false, U, V> { | |
type R = V; | |
} | |
struct RobinHashTable<const MAX_LENGTH: usize, CellIdx = Cond<{ MAX_LENGTH < 65535 }, u16, u32>> | |
where | |
CellIdx: Ret, | |
{ | |
_idx: CellIdx::R, | |
} | |
fn main() { | |
use std::mem::size_of; | |
println!("{}", size_of::<RobinHashTable<1024>>()); | |
println!("{}", size_of::<RobinHashTable<65536>>()); | |
} |