Files
mist/mist-test/src/items/trait_test.mist
T

57 lines
730 B
Plaintext

pub module trait_test;
pub module trait_test;
trait Speak
{
String speak(&self);
}
trait Greet : Speak
{
String greet(&self);
}
struct Dog
{
String name;
}
impl Speak for Dog
{
String speak(&self)
{
"woof".to_string()
}
}
impl Greet for Dog
{
String greet(&self)
{
"hello".to_string()
}
}
pub void test_trait_impl()
{
let d = Dog {
name: "Rex".to_string(),
};
assert_eq!(d.speak(), "woof");
}
pub void test_trait_with_requirement()
{
let d = Dog {
name: "Buddy".to_string(),
};
assert_eq!(d.speak(), "woof");
assert_eq!(d.greet(), "hello");
}
pub void run_tests()
{
test_trait_impl();
test_trait_with_requirement();
}