如何解决在Rust的作用域中找不到包含的Trait实现中的方法
我想使用两个外部库(geo-types-0.6.0和geo-offset-0.1.0)来执行几何算法。
以下示例似乎不错:
Line
类型在库geo_types
中定义。
此外,Offset
特性用geo_offset
编写。包含此特征应导致使用Line
类型的实现方法offset
。
但是我收到以下错误:
no method named `offset` found for struct `geo_types::line::Line<float>` in the current scope
除此之外,VS代码中的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
板条箱为Offset
而非geo::Line
实现了geo_types::Line
特质(src-搜索geo::Line
)。因此,即使geo::Line
只是geo_types::Line
的重新导出,rust编译器也看不到这么深,只知道Offset
的{{1}}实现。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。