`crates.io` 中的代码引用与实际的 crate 不匹配
The code reference in `crates.io` does not match with the actual crate
我对 Rust 使用库的语法很陌生。好吧,总体来说大部分是新手。
我添加了一个未完成的库,而且似乎不起作用。 library is called "hours"、lib.rs
包含以下内容:
// #[derive(Clone, Debug, PartialEq, Eq)]
pub struct Hours {
pub rules: Vec<types::RuleSequence>,
pub tz: Tz,
}
impl Hours {
pub fn from(s: &str, tz: Tz) -> Result<Self, String> {
//... abbreviated
}
pub fn at(self: &Self, dt: &DateTime<Tz>) -> types::Modifier {
//... abbreviated
}
}
包含在Cargo.toml
中:相关行:
edition = "2018"
[dependencies]
hours = "0.0.1"
我想知道是否可以包含和使用 from()
函数,到目前为止,我运气不好。这是我尝试过的:
use hours;
fn main() {
//... abbreviated
let hours = Hours::from(example_hrs, Amsterdam).unwrap();
}
给出编译错误:Hours::from(example_hrs, Amsterdam).unwrap(); ^^^^^ use of undeclared type or module
小时``
use hours::Hours;
fn main() {
//... abbreviated
let hours = Hours::from(example_hrs, Amsterdam).unwrap();
}
给出编译错误:use hours::Hours; ^^^^^^^^^^^^ no ``Hours`` in the root
use hours;
fn main() {
//... abbreviated
let hours = hours::Hours::from(example_hrs, Amsterdam).unwrap();
}
给出编译错误:hours::Hours::from(example_hrs, Amsterdam).unwrap(); ^^^^^ could not find
小时in
小时``
有什么方法可以包含和使用这个库吗?我需要更改库,还是我只是用错了?
这里有问题,您共享的存储库 link 中的代码与 crates.io 中的依赖项不匹配,自然 Rust 找不到所需的 api 组件.在这种情况下,箱子的所有者尚未在 gitlab 中发布代码。
想看的可以从docs.rs快速查看出处。这是所需依赖项 docs.rs/crate/hours/0.0.1/source/ 的 link。
如果您想使用存储库中的当前代码
- 您可以通过下载(或使用 git 克隆)在本地拥有它,然后您可以通过 specifying the path 在
cargo.toml
中使用它
- 或者直接在 cargo toml 中定义 git 仓库。
hours = { git = "https://gitlab.com/alantrick/hours.git", rev="7b7d369796c209db7b61db71aa7396f2ec59f942"}
添加修订号或标签可能会有所帮助,因为 master 分支上的更新可能会破坏兼容性。
为什么 docs.rs 中的这个来源与 crates.io 是准确的?
请查看 docs.rs 中的 关于 部分:
Docs.rs automatically builds crates' documentation released on
crates.io using the nightly release of the Rust compiler
这意味着它与 crates.io 同步。
当然,您还可以从本地存储库缓存中检查 crate 的来源。
## Note that this path is built with default cargo settings
$HOME/.cargo/registry/src/github.com-1ecc6299db9ec823/hours-0.0.1
^^^^^^^^^^^^^^^^^^^^^^^^^^^ github reigstry for crates io
为什么 crates.io 中 crate 的存储库 link 与 crate 的源不匹配
请检查发布箱 reference,repository
信息在包的 metadata
中指定(在 cargo.toml
中)。
根据包元数据 reference 这些信息用于:
These URLs point to more information about the package. These are
intended to be webviews of the relevant data, not necessarily compatible
with VCS tools and the like.
documentation = "..."
homepage = "..."
repository = "..."
你也可以查看流行的 crates,它们指向他们的 github(通常)主页,指向 master 分支,而不是当前版本的标签。
我对 Rust 使用库的语法很陌生。好吧,总体来说大部分是新手。
我添加了一个未完成的库,而且似乎不起作用。 library is called "hours"、lib.rs
包含以下内容:
// #[derive(Clone, Debug, PartialEq, Eq)]
pub struct Hours {
pub rules: Vec<types::RuleSequence>,
pub tz: Tz,
}
impl Hours {
pub fn from(s: &str, tz: Tz) -> Result<Self, String> {
//... abbreviated
}
pub fn at(self: &Self, dt: &DateTime<Tz>) -> types::Modifier {
//... abbreviated
}
}
包含在Cargo.toml
中:相关行:
edition = "2018"
[dependencies]
hours = "0.0.1"
我想知道是否可以包含和使用 from()
函数,到目前为止,我运气不好。这是我尝试过的:
use hours;
fn main() {
//... abbreviated
let hours = Hours::from(example_hrs, Amsterdam).unwrap();
}
给出编译错误:Hours::from(example_hrs, Amsterdam).unwrap(); ^^^^^ use of undeclared type or module
小时``
use hours::Hours;
fn main() {
//... abbreviated
let hours = Hours::from(example_hrs, Amsterdam).unwrap();
}
给出编译错误:use hours::Hours; ^^^^^^^^^^^^ no ``Hours`` in the root
use hours;
fn main() {
//... abbreviated
let hours = hours::Hours::from(example_hrs, Amsterdam).unwrap();
}
给出编译错误:hours::Hours::from(example_hrs, Amsterdam).unwrap(); ^^^^^ could not find
小时in
小时``
有什么方法可以包含和使用这个库吗?我需要更改库,还是我只是用错了?
这里有问题,您共享的存储库 link 中的代码与 crates.io 中的依赖项不匹配,自然 Rust 找不到所需的 api 组件.在这种情况下,箱子的所有者尚未在 gitlab 中发布代码。
想看的可以从docs.rs快速查看出处。这是所需依赖项 docs.rs/crate/hours/0.0.1/source/ 的 link。
如果您想使用存储库中的当前代码
- 您可以通过下载(或使用 git 克隆)在本地拥有它,然后您可以通过 specifying the path 在
cargo.toml
中使用它
- 或者直接在 cargo toml 中定义 git 仓库。
hours = { git = "https://gitlab.com/alantrick/hours.git", rev="7b7d369796c209db7b61db71aa7396f2ec59f942"}
添加修订号或标签可能会有所帮助,因为 master 分支上的更新可能会破坏兼容性。
为什么 docs.rs 中的这个来源与 crates.io 是准确的?
请查看 docs.rs 中的 关于 部分:
Docs.rs automatically builds crates' documentation released on crates.io using the nightly release of the Rust compiler
这意味着它与 crates.io 同步。
当然,您还可以从本地存储库缓存中检查 crate 的来源。
## Note that this path is built with default cargo settings
$HOME/.cargo/registry/src/github.com-1ecc6299db9ec823/hours-0.0.1
^^^^^^^^^^^^^^^^^^^^^^^^^^^ github reigstry for crates io
为什么 crates.io 中 crate 的存储库 link 与 crate 的源不匹配
请检查发布箱 reference,repository
信息在包的 metadata
中指定(在 cargo.toml
中)。
根据包元数据 reference 这些信息用于:
These URLs point to more information about the package. These are intended to be webviews of the relevant data, not necessarily compatible with VCS tools and the like.
documentation = "..." homepage = "..." repository = "..."
你也可以查看流行的 crates,它们指向他们的 github(通常)主页,指向 master 分支,而不是当前版本的标签。