#[derive(Debug)]
enum MyError {
    NotFound { key: Vec<u8> },
    Err41,
}

impl std::error::Error for MyError {}

impl std::fmt::Display for MyError {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            MyError::NotFound { key } => write!(
                f,
                "unknown error with code {}.",
                String::from_utf8(*key).unwrap()
                //~^ ERROR cannot move out of `*key` which is behind a shared reference
            ),
            MyError::Err41 => write!(f, "Sit by a lake"),
        }
    }
}
fn main() {
    println!("Hello, world!");
}