Description
Describe the problem you are trying to solve
Patch syntax allows replacing a dependency's git URL, but it doesn't seem allow to specify a directory in that repository. At least, it is not documented at https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html. Essentially, it is useless when patched crate is a part of a cargo workspace.
Describe the solution you'd like
Two solutions:
More integrated with cargo/rust: specify workspace member's package name, so that cargo will parse manifest and resolve to the required directory automatically.
More general: manually specify sub-directory of a git repository, so that cargo would look for a crate's Cargo.toml
manifest in that dir.
Notes
I think, both proposed solutions are fine and can be implemented concurrently and without interfering each other.
Related: #6126