我想创建一个基本特征,将实现其他运营商的特征(Add,Subtract,Multiply,Divide,等...)我.
这无法编译,它看起来像一个发布Sized,但即使Measurement设置为要求Sized它不起作用.这甚至可能吗?
use std::ops::Add;
#[derive(Copy, Clone, Debug)]
struct Unit {
value: f64,
}
impl Unit {
fn new(value: f64) -> Unit {
Unit { value: value }
}
}
trait Measurement: Sized {
fn get_value(&self) -> f64;
fn from_value(value: f64) -> Self;
}
impl Measurement for Unit {
fn get_value(&self) -> f64 {
self.value
}
fn from_value(value: f64) -> Self {
Unit::new(value)
}
}
// This …Run Code Online (Sandbox Code Playgroud)