mirror of
https://github.com/rust-lang/book.git
synced 2026-05-27 22:52:19 -04:00
Up to this point, the chapter has stuck to `join` and `join3`, as simple function-based APIs. The `join_all` API is obviously more convenient than those *if you can use it*, but being able to use it requires having something which `impl Iterator` of a given type, and therefore demands a homogeneous type, which motivates introducing `Box::pin`. That in turn is quite annoying to work with and requires `Output = <same>` for all the futures in the collection, because of how `join_all` is typed (Rust does not have the ability to do do variadic types, which is what would be necessary for `join_all` to work the way we might want). Thus, we get a motivation for `futures::join!`, which unlike `join_all` *can* work with heterogeneous types. This fills out a fair bit of the text here and adds a lot of the listing support, and outlines what remains to do text-wise.
27 lines
884 B
TOML
27 lines
884 B
TOML
[workspace]
|
|
members = ["packages/tools"]
|
|
default-members = ["packages/tools"]
|
|
resolver = "2"
|
|
exclude = [
|
|
"linkchecker", # linkchecker is part of the CI workflow
|
|
"listings", # these are intentionally distinct from the workspace
|
|
"tmp", # listings are built here when updating output via tools/update-rustc.sh
|
|
"packages/trpl", # manages its own dependencies as a standalone crate
|
|
|
|
# These are used as path dependencies in `rust-lang/rust` (since we are not
|
|
# publishing them to crates.io), so they cannot be part of this workspace,
|
|
# because path dependencies do not get built as a crate within the hosting
|
|
# workspace.
|
|
"packages/mdbook-trpl-listing",
|
|
"packages/mdbook-trpl-note",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
walkdir = "2.3.1"
|
|
docopt = "1.1.0"
|
|
serde = "1.0"
|
|
regex = "1.3.3"
|
|
lazy_static = "1.4.0"
|
|
flate2 = "1.0.13"
|
|
tar = "0.4.26"
|