我想使用两个外部库(geo-types-0.6.0 和 geo-offset-0.1.0)来执行几何算法。
下面的例子看起来不错:
Line
类型在库中定义 geo_types
.
Offset
trait 还写在 geo_offset
中.包括这个特征应该导致 Line
类型实现方法offset
.
但是我收到以下错误:
no method named `offset` found for struct `geo_types::line::Line<float>` in the current scope
除此之外,rust-analyzer
在 VS Code 中告诉我,包含的特征 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 实现了 geo::Line
的 Offset
特性,而不是 geo_types::Line
(src - 搜索 geo::Line
)。所以即便如此,geo::Line
只是 geo_types::Line
的重新导出,rust 编译器看不到这么深,只知道
实现。geo::Line
的偏移量
关于rust - 在 Rust 的范围内找不到来自包含的 Trait 实现的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63843133/