Unable to read file contents to string - Result does not implement any method in scope named `read_to_string`
Let's look at your error message:
error[E0599]: no method named `read_to_string` found for type `std::result::Result<std::fs::File, std::io::Error>` in the current scope
--> src/main.rs:11:14
|
11 | file.read_to_string(&mut s);
| ^^^^^^^^^^^^^^ method not found in `std::result::Result<std::fs::File, std::io::Error>`
The error message is pretty much what it says on the tin - the type Result
does not have the method read_to_string
. That's actually a method on the trait Read
.
You have a Result
because File::open(&path)
can fail. Failure is represented with the Result
type. A Result
may be either an Ok
, which is the success case, or an Err
, the failure case.
You need to handle the failure case somehow. The easiest is to just die on failure, using expect
:
let mut file = File::open(&path).expect("Unable to open");
You'll also need to bring Read
into scope to have access to read_to_string
:
use std::io::Read;
I'd highly recommend reading through The Rust Programming Language and working the examples. The chapter Recoverable Errors with Result
will be highly relevant. I think these docs are top-notch!