auto merge of #18463 : japaric/rust/bytes2, r=alexcrichton
- The `BytesContainer::container_into_owned_bytes` method has been removed
- Methods that used to take `BytesContainer` implementors by value, now take them by reference. In particular, this breaks some uses of Path:
``` rust
Path::new("foo") // Still works
path.join(another_path) -> path.join(&another_path)
```
[breaking-change]
---
Re: `container_into_owned_bytes`, I've removed it because
- Nothing in the whole repository uses it
- Takes `self` by value, which is incompatible with unsized types (`str`)
The alternative to removing this method is to split `BytesContainer` into `BytesContainer for Sized?` and `SizedBytesContainer: BytesContainer + Sized`, where the second trait only contains the `container_into_owned_bytes` method. I tried this alternative [in another branch](https://github.com/japaric/rust/commits/bytes) and it works, but it seemed better not to create a new trait for an unused method.
Re: Breakage of `Path` methods
We could use the idea that @alexcrichton proposed in #18457 (add blanket `impl BytesContainer for &T where T: BytesContainer` + keep taking `T: BytesContainer` by value in `Path` methods) to avoid breaking any code.
r? @aturon
cc #16918
This commit is contained in:
commit
b9b396cd75
8 changed files with 36 additions and 59 deletions
|
|
@ -48,7 +48,7 @@ fn main() {
|
|||
|
||||
let child_filestem = Path::new(child_name);
|
||||
let child_filename = child_filestem.with_extension(my_ext);
|
||||
let child_path = cwd.join(child_filename.clone());
|
||||
let child_path = cwd.join(child_filename);
|
||||
|
||||
// make a separate directory for the child
|
||||
drop(fs::mkdir(&cwd, io::USER_RWX).is_ok());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue