1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
trait double { fn double() -> uint; } impl uint: double { fn double() -> uint { self * 2u } } fn is_equal<D: double>(x: @D, exp: uint) { assert x.double() == exp; } fn main() { let x = @(3u as double); is_equal(x, 6); }