rust - 在 Rust 的范围内找不到包含的 Trait 实现的方法
问题描述
我想使用两个外部库(geo-types-0.6.0 和 geo-offset-0.1.0)来执行几何算法。
下面的例子看起来不错:Line
类型是在 library 中定义的geo_types
。该Offset
特征还写在geo_offset
. 包括这个特征应该导致Line
类型实现方法offset
。但是我收到以下错误:
no method named `offset` found for struct `geo_types::line::Line<float>` in the current scope
除此之外,在 VS Code 中告诉我,不使用rust-analyzer
包含的特征。Offset
这是为什么?
use geo_types::{Coordinate, Line};
use geo_offset::Offset;
let line = Line::new(
Coordinate { x: 0.0, y: 0.0 },
Coordinate { x: 1.0, y: 8.0 },
);
let line_with_offset = line.offset(2.0)?;
解决方案
geo-offset
crate 实现了for的Offset
trait geo::Line
,而不是geo_types::Line
( src - search for geo::Line
)。所以即便如此geo::Line
只是对.geo_types::Line
Offset
geo::Line