Files
bux-lang/examples/extend_generic.bux
T

30 lines
540 B
Plaintext

// Generic impl blocks — extend Box<T> with methods
import Std::Io::{PrintLine, PrintInt};
struct Box<T> {
value: T,
}
extend Box<T> {
func Get(self: *Box<T>) -> T {
return self.value;
}
func Set(self: *Box<T>, value: T) {
self.value = value;
}
}
func Main() -> int {
let b: Box<int> = Box<int> { value: 42 };
PrintLine("Box value:");
PrintInt(b.Get());
PrintLine("");
b.Set(100);
PrintLine("Box after Set(100):");
PrintInt(b.Get());
PrintLine("");
return 0;
}