我只是构建了一个有两个函数的trait Bar
(alpha()
有实现,beta()
只有接口),我希望实现Bar
的struct只实现beta()
,永远不要实现自己的alpha()
。
有什么方法可以阻止另一个结构实现自己的alpha()
吗?
trait Bar {
fn alpha(&self) {
println!("you should never implement this function on your own.");
}
fn beta(&self);
}
struct Foo {}
impl Bar for Foo {
fn alpha(&self) {
println!("how do I trigger an error here when a struct implement it's own alpha()?");
}
fn beta(&self) {
println!("implement beta() for Foo");
}
}
字符串
1条答案
按热度按时间7z5jn7bk1#
你可以通过将trait分成两个,并为trait提供一个包含default方法的实现来实现。
字符串