私は Rust を学んでいて、借用チェッカーと戦っています。
私は基本的なPoint
構造を持っています。scale
ポイントのすべての座標を変更する関数があります。という名前の別のメソッドからこのメソッドを呼び出したいconvert
:
struct AngleUnit;
struct Point {
x: f32,
y: f32,
z: f32,
unit: AngleUnit,
}
fn factor(_from: AngleUnit, _to: AngleUnit) -> f32 {
1.0
}
impl Point {
pub fn new(x: f32, y: f32, z: f32, unit: AngleUnit) -> Point {
Point { x, y, z, unit }
}
fn scale(&mut self, factor: f32) {
self.x *= factor;
self.y *= factor;
self.z *= factor;
}
fn convert(&mut self, unit: AngleUnit) {
let point_unit = self.unit;
self.scale(factor(point_unit, unit));
}
}
今、私は次のエラーがあります:
cannot move out of borrowed content
私は何を間違っていますか?