I think in this case it'd say something about errorkind not existing, but there is something with a similar name.
In my experience, the Rust compiler is one of the best teachers you can have... For example, if I try that snippet on the playground I get this:
error[E0432]: unresolved imports `std::io::write`, `std::io::result`, `std::io::errorkind`
--> src/lib.rs:1:15
|
1 | use std::io::{write, result, errorkind};
| ^^^^^ ^^^^^^ ^^^^^^^^^ no `errorkind` in `io`
| | |
| | no `result` in `io`
| no `write` in `io`
|
help: a macro with this name exists at the root of the crate
|
1 | use std::{write, io::{result, errorkind}};
| ^^^^^^^^^ -- ^^
help: a similar name exists in the module
|
1 | use std::io::{write, Result, errorkind};
| ^^^^^^
help: a similar name exists in the module
|
1 | use std::io::{write, result, ErrorKind};
| ^^^^^^^^^
When implementing a trait you can only implement the methods for that trait inside the impl Write for MyType block.
If you want to attach other methods to your type then they go in their own impl MyType block.
It sounds like you learn by hacking on code and seeing how it goes, so you might want to check out Rust by Example. They've got a page on implementing methods.