{"$message_type":"diagnostic","message":"cannot find type `Session` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":3936,"byte_end":3943,"line_start":101,"line_end":101,"column_start":14,"column_end":21,"is_primary":true,"text":[{"text":"    session: Session,","highlight_start":14,"highlight_end":21}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find type `Session` in this scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:101:14\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m101\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     session: Session,\n    \u001b[1m\u001b[94m|\u001b[0m              \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find struct, variant or union type `Framed` in this scope","code":{"code":"E0422","explanation":"An identifier that is neither defined nor a struct was used.\n\nErroneous code example:\n\n```compile_fail,E0422\nfn main () {\n    let x = Foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `Foo` is undefined, so it inherently isn't anything, and\ndefinitely not a struct.\n\n```compile_fail\nfn main () {\n    let foo = 1;\n    let x = foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `foo` is defined, but is not a struct, so Rust can't use it as\none.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":45876,"byte_end":45882,"line_start":1045,"line_end":1045,"column_start":39,"column_end":45,"is_primary":true,"text":[{"text":"        let framed = framed.unwrap_or(Framed {","highlight_start":39,"highlight_end":45}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0422]\u001b[0m\u001b[1m: cannot find struct, variant or union type `Framed` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1045:39\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1045\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         let framed = framed.unwrap_or(Framed {\n     \u001b[1m\u001b[94m|\u001b[0m                                       \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find struct, variant or union type `Consequences` in this scope","code":{"code":"E0422","explanation":"An identifier that is neither defined nor a struct was used.\n\nErroneous code example:\n\n```compile_fail,E0422\nfn main () {\n    let x = Foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `Foo` is undefined, so it inherently isn't anything, and\ndefinitely not a struct.\n\n```compile_fail\nfn main () {\n    let foo = 1;\n    let x = foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `foo` is defined, but is not a struct, so Rust can't use it as\none.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":51868,"byte_end":51880,"line_start":1192,"line_end":1192,"column_start":13,"column_end":25,"is_primary":true,"text":[{"text":"        let Consequences { undo, redo } = self.session.consequences();","highlight_start":13,"highlight_end":25}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0422]\u001b[0m\u001b[1m: cannot find struct, variant or union type `Consequences` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1192:13\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1192\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         let Consequences { undo, redo } = self.session.consequences();\n     \u001b[1m\u001b[94m|\u001b[0m             \u001b[1m\u001b[91m^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Sighting` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":70324,"byte_end":70332,"line_start":1604,"line_end":1604,"column_start":48,"column_end":56,"is_primary":true,"text":[{"text":"    fn sighting(&self, ctx: &egui::Context) -> Sighting {","highlight_start":48,"highlight_end":56}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find type `Sighting` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1604:48\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1604\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     fn sighting(&self, ctx: &egui::Context) -> Sighting {\n     \u001b[1m\u001b[94m|\u001b[0m                                                \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find struct, variant or union type `Sighting` in this scope","code":{"code":"E0422","explanation":"An identifier that is neither defined nor a struct was used.\n\nErroneous code example:\n\n```compile_fail,E0422\nfn main () {\n    let x = Foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `Foo` is undefined, so it inherently isn't anything, and\ndefinitely not a struct.\n\n```compile_fail\nfn main () {\n    let foo = 1;\n    let x = foo { x: 1, y: 2 };\n}\n```\n\nIn this case, `foo` is defined, but is not a struct, so Rust can't use it as\none.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":70343,"byte_end":70351,"line_start":1605,"line_end":1605,"column_start":9,"column_end":17,"is_primary":true,"text":[{"text":"        Sighting {","highlight_start":9,"highlight_end":17}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0422]\u001b[0m\u001b[1m: cannot find struct, variant or union type `Sighting` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1605:9\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1605\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         Sighting {\n     \u001b[1m\u001b[94m|\u001b[0m         \u001b[1m\u001b[91m^^^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused import: `Align2`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":21,"byte_end":27,"line_start":1,"line_end":1,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":"use blockworx_geom::{Align2, Pos2, Rect, vec2};","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":21,"byte_end":29,"line_start":1,"line_end":1,"column_start":22,"column_end":30,"is_primary":true,"text":[{"text":"use blockworx_geom::{Align2, Pos2, Rect, vec2};","highlight_start":22,"highlight_end":30}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `Align2`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1:22\n  \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_geom::{Align2, Pos2, Rect, vec2};\n  \u001b[1m\u001b[94m|\u001b[0m                      \u001b[1m\u001b[33m^^^^^^\u001b[0m\n  \u001b[1m\u001b[94m|\u001b[0m\n  \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\n"}
{"$message_type":"diagnostic","message":"unused imports: `Font` and `Saturation`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":78,"byte_end":82,"line_start":2,"line_end":2,"column_start":31,"column_end":35,"is_primary":true,"text":[{"text":"use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};","highlight_start":31,"highlight_end":35}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":106,"byte_end":116,"line_start":2,"line_end":2,"column_start":59,"column_end":69,"is_primary":true,"text":[{"text":"use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};","highlight_start":59,"highlight_end":69}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused imports","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":76,"byte_end":82,"line_start":2,"line_end":2,"column_start":29,"column_end":35,"is_primary":true,"text":[{"text":"use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};","highlight_start":29,"highlight_end":35}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":104,"byte_end":116,"line_start":2,"line_end":2,"column_start":57,"column_end":69,"is_primary":true,"text":[{"text":"use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};","highlight_start":57,"highlight_end":69}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `Font` and `Saturation`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:2:31\n  \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m2\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};\n  \u001b[1m\u001b[94m|\u001b[0m                               \u001b[1m\u001b[33m^^^^\u001b[0m                        \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused import: `blockworx_router::turtle::Mark`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":398,"byte_end":428,"line_start":10,"line_end":10,"column_start":5,"column_end":35,"is_primary":true,"text":[{"text":"use blockworx_router::turtle::Mark;","highlight_start":5,"highlight_end":35}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":394,"byte_end":430,"line_start":10,"line_end":11,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use blockworx_router::turtle::Mark;","highlight_start":1,"highlight_end":36},{"text":"use blockworx_store::Refusal;","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `blockworx_router::turtle::Mark`\u001b[0m\n  \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:10:5\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m10\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_router::turtle::Mark;\n   \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused import: `blockworx_store::Refusal`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":434,"byte_end":458,"line_start":11,"line_end":11,"column_start":5,"column_end":29,"is_primary":true,"text":[{"text":"use blockworx_store::Refusal;","highlight_start":5,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":430,"byte_end":460,"line_start":11,"line_end":12,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"use blockworx_store::Refusal;","highlight_start":1,"highlight_end":30},{"text":"use blockworx_store::doc::{Doc, Viewing};","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `blockworx_store::Refusal`\u001b[0m\n  \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:11:5\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m11\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_store::Refusal;\n   \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused import: `Viewing`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":492,"byte_end":499,"line_start":12,"line_end":12,"column_start":33,"column_end":40,"is_primary":true,"text":[{"text":"use blockworx_store::doc::{Doc, Viewing};","highlight_start":33,"highlight_end":40}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":490,"byte_end":499,"line_start":12,"line_end":12,"column_start":31,"column_end":40,"is_primary":true,"text":[{"text":"use blockworx_store::doc::{Doc, Viewing};","highlight_start":31,"highlight_end":40}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":486,"byte_end":487,"line_start":12,"line_end":12,"column_start":27,"column_end":28,"is_primary":true,"text":[{"text":"use blockworx_store::doc::{Doc, Viewing};","highlight_start":27,"highlight_end":28}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":499,"byte_end":500,"line_start":12,"line_end":12,"column_start":40,"column_end":41,"is_primary":true,"text":[{"text":"use blockworx_store::doc::{Doc, Viewing};","highlight_start":40,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `Viewing`\u001b[0m\n  \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:12:33\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m12\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_store::doc::{Doc, Viewing};\n   \u001b[1m\u001b[94m|\u001b[0m                                 \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused imports: `CommandContext`, `GRID_SIZE`, `RoleStroke`, `Scope`, `Style`, `Theme`, `edit::describe::Label`, `history::Direction`, `multi_pin_select::MultiPinSelect`, `multi_select::MultiSelect`, `px_rect`, and `spotlight::Spotlight`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":640,"byte_end":661,"line_start":18,"line_end":18,"column_start":5,"column_end":26,"is_primary":true,"text":[{"text":"    edit::describe::Label,","highlight_start":5,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":727,"byte_end":736,"line_start":21,"line_end":21,"column_start":12,"column_end":21,"is_primary":true,"text":[{"text":"    grid::{GRID_SIZE, px_rect},","highlight_start":12,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":738,"byte_end":745,"line_start":21,"line_end":21,"column_start":23,"column_end":30,"is_primary":true,"text":[{"text":"    grid::{GRID_SIZE, px_rect},","highlight_start":23,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":752,"byte_end":770,"line_start":22,"line_end":22,"column_start":5,"column_end":23,"is_primary":true,"text":[{"text":"    history::Direction,","highlight_start":5,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":932,"byte_end":937,"line_start":27,"line_end":27,"column_start":23,"column_end":28,"is_primary":true,"text":[{"text":"    path::{BlockPath, Scope},","highlight_start":23,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1041,"byte_end":1061,"line_start":31,"line_end":31,"column_start":5,"column_end":25,"is_primary":true,"text":[{"text":"    spotlight::Spotlight,","highlight_start":5,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1081,"byte_end":1091,"line_start":32,"line_end":32,"column_start":19,"column_end":29,"is_primary":true,"text":[{"text":"    theme::{Role, RoleStroke, Style, Theme},","highlight_start":19,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1093,"byte_end":1098,"line_start":32,"line_end":32,"column_start":31,"column_end":36,"is_primary":true,"text":[{"text":"    theme::{Role, RoleStroke, Style, Theme},","highlight_start":31,"highlight_end":36}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1100,"byte_end":1105,"line_start":32,"line_end":32,"column_start":38,"column_end":43,"is_primary":true,"text":[{"text":"    theme::{Role, RoleStroke, Style, Theme},","highlight_start":38,"highlight_end":43}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1160,"byte_end":1174,"line_start":35,"line_end":35,"column_start":20,"column_end":34,"is_primary":true,"text":[{"text":"        commands::{CommandContext, CommandSet},","highlight_start":20,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1197,"byte_end":1229,"line_start":36,"line_end":36,"column_start":9,"column_end":41,"is_primary":true,"text":[{"text":"        multi_pin_select::MultiPinSelect,","highlight_start":9,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":1239,"byte_end":1264,"line_start":37,"line_end":37,"column_start":9,"column_end":34,"is_primary":true,"text":[{"text":"        multi_select::MultiSelect,","highlight_start":9,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused imports","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":634,"byte_end":661,"line_start":17,"line_end":18,"column_start":33,"column_end":26,"is_primary":true,"text":[{"text":"    canvas::{CanvasChrome, View},","highlight_start":33,"highlight_end":34},{"text":"    edit::describe::Label,","highlight_start":1,"highlight_end":26}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":714,"byte_end":770,"line_start":20,"line_end":22,"column_start":19,"column_end":23,"is_primary":true,"text":[{"text":"    grid::GridCell,","highlight_start":19,"highlight_end":20},{"text":"    grid::{GRID_SIZE, px_rect},","highlight_start":1,"highlight_end":32},{"text":"    history::Direction,","highlight_start":1,"highlight_end":23}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":930,"byte_end":937,"line_start":27,"line_end":27,"column_start":21,"column_end":28,"is_primary":true,"text":[{"text":"    path::{BlockPath, Scope},","highlight_start":21,"highlight_end":28}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":920,"byte_end":921,"line_start":27,"line_end":27,"column_start":11,"column_end":12,"is_primary":true,"text":[{"text":"    path::{BlockPath, Scope},","highlight_start":11,"highlight_end":12}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":937,"byte_end":938,"line_start":27,"line_end":27,"column_start":28,"column_end":29,"is_primary":true,"text":[{"text":"    path::{BlockPath, Scope},","highlight_start":28,"highlight_end":29}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1035,"byte_end":1061,"line_start":30,"line_end":31,"column_start":31,"column_end":25,"is_primary":true,"text":[{"text":"    shape::{ShapeId, ShapeRef},","highlight_start":31,"highlight_end":32},{"text":"    spotlight::Spotlight,","highlight_start":1,"highlight_end":25}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1079,"byte_end":1105,"line_start":32,"line_end":32,"column_start":17,"column_end":43,"is_primary":true,"text":[{"text":"    theme::{Role, RoleStroke, Style, Theme},","highlight_start":17,"highlight_end":43}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1074,"byte_end":1075,"line_start":32,"line_end":32,"column_start":12,"column_end":13,"is_primary":true,"text":[{"text":"    theme::{Role, RoleStroke, Style, Theme},","highlight_start":12,"highlight_end":13}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1105,"byte_end":1106,"line_start":32,"line_end":32,"column_start":43,"column_end":44,"is_primary":true,"text":[{"text":"    theme::{Role, RoleStroke, Style, Theme},","highlight_start":43,"highlight_end":44}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1160,"byte_end":1176,"line_start":35,"line_end":35,"column_start":20,"column_end":36,"is_primary":true,"text":[{"text":"        commands::{CommandContext, CommandSet},","highlight_start":20,"highlight_end":36}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1159,"byte_end":1160,"line_start":35,"line_end":35,"column_start":19,"column_end":20,"is_primary":true,"text":[{"text":"        commands::{CommandContext, CommandSet},","highlight_start":19,"highlight_end":20}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1186,"byte_end":1187,"line_start":35,"line_end":35,"column_start":46,"column_end":47,"is_primary":true,"text":[{"text":"        commands::{CommandContext, CommandSet},","highlight_start":46,"highlight_end":47}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"src/app.rs","byte_start":1187,"byte_end":1264,"line_start":35,"line_end":37,"column_start":47,"column_end":34,"is_primary":true,"text":[{"text":"        commands::{CommandContext, CommandSet},","highlight_start":47,"highlight_end":48},{"text":"        multi_pin_select::MultiPinSelect,","highlight_start":1,"highlight_end":42},{"text":"        multi_select::MultiSelect,","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `CommandContext`, `GRID_SIZE`, `RoleStroke`, `Scope`, `Style`, `Theme`, `edit::describe::Label`, `history::Direction`, `multi_pin_select::MultiPinSelect`, `multi_select::MultiSelect`, `px_rect`, and `spotlight::Spotlight`\u001b[0m\n  \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:18:5\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m18\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     edit::describe::Label,\n   \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m21\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     grid::{GRID_SIZE, px_rect},\n   \u001b[1m\u001b[94m|\u001b[0m            \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m22\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     history::Direction,\n   \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m27\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     path::{BlockPath, Scope},\n   \u001b[1m\u001b[94m|\u001b[0m                       \u001b[1m\u001b[33m^^^^^\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m31\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     spotlight::Spotlight,\n   \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m32\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     theme::{Role, RoleStroke, Style, Theme},\n   \u001b[1m\u001b[94m|\u001b[0m                   \u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m35\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         commands::{CommandContext, CommandSet},\n   \u001b[1m\u001b[94m|\u001b[0m                    \u001b[1m\u001b[33m^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m36\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         multi_pin_select::MultiPinSelect,\n   \u001b[1m\u001b[94m|\u001b[0m         \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[94m37\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         multi_select::MultiSelect,\n   \u001b[1m\u001b[94m|\u001b[0m         \u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused imports: `Imported`, `Insert`, `UNTITLED`, `from_clipboard`, and `interpret`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/import.rs","byte_start":505,"byte_end":513,"line_start":11,"line_end":11,"column_start":36,"column_end":44,"is_primary":true,"text":[{"text":"pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};","highlight_start":36,"highlight_end":44}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/import.rs","byte_start":515,"byte_end":521,"line_start":11,"line_end":11,"column_start":46,"column_end":52,"is_primary":true,"text":[{"text":"pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};","highlight_start":46,"highlight_end":52}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/import.rs","byte_start":523,"byte_end":531,"line_start":11,"line_end":11,"column_start":54,"column_end":62,"is_primary":true,"text":[{"text":"pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};","highlight_start":54,"highlight_end":62}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/import.rs","byte_start":533,"byte_end":547,"line_start":11,"line_end":11,"column_start":64,"column_end":78,"is_primary":true,"text":[{"text":"pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};","highlight_start":64,"highlight_end":78}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/import.rs","byte_start":549,"byte_end":558,"line_start":11,"line_end":11,"column_start":80,"column_end":89,"is_primary":true,"text":[{"text":"pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};","highlight_start":80,"highlight_end":89}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the whole `use` item","code":null,"level":"help","spans":[{"file_name":"src/import.rs","byte_start":470,"byte_end":561,"line_start":11,"line_end":12,"column_start":1,"column_end":1,"is_primary":true,"text":[{"text":"pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};","highlight_start":1,"highlight_end":91},{"text":"// Only the native build opens a file by name: the web one has no container","highlight_start":1,"highlight_end":1}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused imports: `Imported`, `Insert`, `UNTITLED`, `from_clipboard`, and `interpret`\u001b[0m\n  \u001b[1m\u001b[94m--> \u001b[0msrc/import.rs:11:36\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m11\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub use blockworx_editor::import::{Imported, Insert, UNTITLED, from_clipboard, interpret};\n   \u001b[1m\u001b[94m|\u001b[0m                                    \u001b[1m\u001b[33m^^^^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^^^^^^^^^^\u001b[0m  \u001b[1m\u001b[33m^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Session` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":21506,"byte_end":21513,"line_start":522,"line_end":522,"column_start":22,"column_end":29,"is_primary":true,"text":[{"text":"            session: Session::opening(doc, Identity::from_environment()),","highlight_start":22,"highlight_end":29}],"label":"use of undeclared type `Session`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Session` in this scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:522:22\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m522\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             session: Session::opening(doc, Identity::from_environment()),\n    \u001b[1m\u001b[94m|\u001b[0m                      \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Session`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no method named `window_title` found for struct `app::App` in the current scope","code":{"code":"E0599","explanation":"This error occurs when a method is used on a type which doesn't implement it:\n\nErroneous code example:\n\n```compile_fail,E0599\nstruct Mouth;\n\nlet x = Mouth;\nx.chocolate(); // error: no method named `chocolate` found for type `Mouth`\n               //        in the current scope\n```\n\nIn this case, you need to implement the `chocolate` method to fix the error:\n\n```\nstruct Mouth;\n\nimpl Mouth {\n    fn chocolate(&self) { // We implement the `chocolate` method here.\n        println!(\"Hmmm! I love chocolate!\");\n    }\n}\n\nlet x = Mouth;\nx.chocolate(); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":3620,"byte_end":3634,"line_start":96,"line_end":96,"column_start":1,"column_end":15,"is_primary":false,"text":[{"text":"pub struct App {","highlight_start":1,"highlight_end":15}],"label":"method `window_title` not found for this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":23457,"byte_end":23469,"line_start":567,"line_end":567,"column_start":37,"column_end":49,"is_primary":true,"text":[{"text":"            app.applied_title = app.window_title();","highlight_start":37,"highlight_end":49}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"there is a method `apply_window_title` with a similar name, but with different arguments","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":36456,"byte_end":36509,"line_start":842,"line_end":842,"column_start":5,"column_end":58,"is_primary":true,"text":[{"text":"    fn apply_window_title(&mut self, ctx: &egui::Context) {","highlight_start":5,"highlight_end":58}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0599]\u001b[0m\u001b[1m: no method named `window_title` found for struct `app::App` in the current scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:567:37\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m 96\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub struct App {\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m--------------\u001b[0m \u001b[1m\u001b[94mmethod `window_title` not found for this struct\u001b[0m\n\u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m567\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             app.applied_title = app.window_title();\n    \u001b[1m\u001b[94m|\u001b[0m                                     \u001b[1m\u001b[91m^^^^^^^^^^^^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: there is a method `apply_window_title` with a similar name, but with different arguments\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:842:5\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m842\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     fn apply_window_title(&mut self, ctx: &egui::Context) {\n    \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[96m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no method named `document_at` found for reference `&app::App` in the current scope","code":{"code":"E0599","explanation":"This error occurs when a method is used on a type which doesn't implement it:\n\nErroneous code example:\n\n```compile_fail,E0599\nstruct Mouth;\n\nlet x = Mouth;\nx.chocolate(); // error: no method named `chocolate` found for type `Mouth`\n               //        in the current scope\n```\n\nIn this case, you need to implement the `chocolate` method to fix the error:\n\n```\nstruct Mouth;\n\nimpl Mouth {\n    fn chocolate(&self) { // We implement the `chocolate` method here.\n        println!(\"Hmmm! I love chocolate!\");\n    }\n}\n\nlet x = Mouth;\nx.chocolate(); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":25574,"byte_end":25585,"line_start":615,"line_end":615,"column_start":39,"column_end":50,"is_primary":true,"text":[{"text":"            let Some(document) = self.document_at(at) else {","highlight_start":39,"highlight_end":50}],"label":"method not found in `&app::App`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0599]\u001b[0m\u001b[1m: no method named `document_at` found for reference `&app::App` in the current scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:615:39\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m615\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             let Some(document) = self.document_at(at) else {\n    \u001b[1m\u001b[94m|\u001b[0m                                       \u001b[1m\u001b[91m^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mmethod not found in `&app::App`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `viewed` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":28859,"byte_end":28865,"line_start":683,"line_end":683,"column_start":31,"column_end":37,"is_primary":true,"text":[{"text":"                    let doc = viewed(&self.session.doc, self.session.time_machine.as_ref()).document();","highlight_start":31,"highlight_end":37}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find function `viewed` in this scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:683:31\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m683\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     let doc = viewed(&self.session.doc, self.session.time_machine.as_ref()).document();\n    \u001b[1m\u001b[94m|\u001b[0m                               \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `viewed` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":30107,"byte_end":30113,"line_start":712,"line_end":712,"column_start":20,"column_end":26,"is_primary":true,"text":[{"text":"        let repo = viewed(&self.session.doc, self.session.time_machine.as_ref());","highlight_start":20,"highlight_end":26}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find function `viewed` in this scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:712:20\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m712\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         let repo = viewed(&self.session.doc, self.session.time_machine.as_ref());\n    \u001b[1m\u001b[94m|\u001b[0m                    \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no field `doc` on type `&mut app::App`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":30243,"byte_end":30246,"line_start":715,"line_end":715,"column_start":14,"column_end":17,"is_primary":true,"text":[{"text":"            .doc","highlight_start":14,"highlight_end":17}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `doc` on type `&mut app::App`\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:715:14\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m715\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             .doc\n    \u001b[1m\u001b[94m|\u001b[0m              \u001b[1m\u001b[91m^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others\n\n"}
{"$message_type":"diagnostic","message":"no method named `window_title` found for mutable reference `&mut app::App` in the current scope","code":{"code":"E0599","explanation":"This error occurs when a method is used on a type which doesn't implement it:\n\nErroneous code example:\n\n```compile_fail,E0599\nstruct Mouth;\n\nlet x = Mouth;\nx.chocolate(); // error: no method named `chocolate` found for type `Mouth`\n               //        in the current scope\n```\n\nIn this case, you need to implement the `chocolate` method to fix the error:\n\n```\nstruct Mouth;\n\nimpl Mouth {\n    fn chocolate(&self) { // We implement the `chocolate` method here.\n        println!(\"Hmmm! I love chocolate!\");\n    }\n}\n\nlet x = Mouth;\nx.chocolate(); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":36537,"byte_end":36549,"line_start":843,"line_end":843,"column_start":26,"column_end":38,"is_primary":true,"text":[{"text":"        let title = self.window_title();","highlight_start":26,"highlight_end":38}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"there is a method `apply_window_title` with a similar name, but with different arguments","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":36456,"byte_end":36509,"line_start":842,"line_end":842,"column_start":5,"column_end":58,"is_primary":true,"text":[{"text":"    fn apply_window_title(&mut self, ctx: &egui::Context) {","highlight_start":5,"highlight_end":58}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0599]\u001b[0m\u001b[1m: no method named `window_title` found for mutable reference `&mut app::App` in the current scope\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:843:26\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m843\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         let title = self.window_title();\n    \u001b[1m\u001b[94m|\u001b[0m                          \u001b[1m\u001b[91m^^^^^^^^^^^^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: there is a method `apply_window_title` with a similar name, but with different arguments\n   \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:842:5\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m842\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     fn apply_window_title(&mut self, ctx: &egui::Context) {\n    \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[96m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Refit` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":45583,"byte_end":45588,"line_start":1038,"line_end":1038,"column_start":20,"column_end":25,"is_primary":true,"text":[{"text":"        if owed == Refit::Owed {","highlight_start":20,"highlight_end":25}],"label":"use of undeclared type `Refit`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Refit` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1038:20\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1038\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         if owed == Refit::Owed {\n     \u001b[1m\u001b[94m|\u001b[0m                    \u001b[1m\u001b[91m^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Refit`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no field `doc_index` on type `&mut app::App`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":48024,"byte_end":48033,"line_start":1099,"line_end":1099,"column_start":18,"column_end":27,"is_primary":true,"text":[{"text":"                .doc_index","highlight_start":18,"highlight_end":27}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `doc_index` on type `&mut app::App`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1099:18\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1099\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 .doc_index\n     \u001b[1m\u001b[94m|\u001b[0m                  \u001b[1m\u001b[91m^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `viewed` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":48056,"byte_end":48062,"line_start":1100,"line_end":1100,"column_start":23,"column_end":29,"is_primary":true,"text":[{"text":"                .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());","highlight_start":23,"highlight_end":29}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find function `viewed` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1100:23\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1100\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());\n     \u001b[1m\u001b[94m|\u001b[0m                       \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no field `doc_index` on type `&mut app::App`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":49576,"byte_end":49585,"line_start":1139,"line_end":1139,"column_start":14,"column_end":23,"is_primary":true,"text":[{"text":"            .doc_index","highlight_start":14,"highlight_end":23}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `doc_index` on type `&mut app::App`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1139:14\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1139\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             .doc_index\n     \u001b[1m\u001b[94m|\u001b[0m              \u001b[1m\u001b[91m^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `viewed` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":49604,"byte_end":49610,"line_start":1140,"line_end":1140,"column_start":19,"column_end":25,"is_primary":true,"text":[{"text":"            .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());","highlight_start":19,"highlight_end":25}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find function `viewed` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1140:19\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1140\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());\n     \u001b[1m\u001b[94m|\u001b[0m                   \u001b[1m\u001b[91m^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no field `last_hover_world` on type `&mut app::App`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":53851,"byte_end":53867,"line_start":1242,"line_end":1242,"column_start":27,"column_end":43,"is_primary":true,"text":[{"text":"            .then(|| self.last_hover_world.map(GridCell::at))","highlight_start":27,"highlight_end":43}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `last_hover_world` on type `&mut app::App`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1242:27\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1242\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             .then(|| self.last_hover_world.map(GridCell::at))\n     \u001b[1m\u001b[94m|\u001b[0m                           \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `step_label` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":56216,"byte_end":56226,"line_start":1296,"line_end":1296,"column_start":26,"column_end":36,"is_primary":true,"text":[{"text":"        let said = match step_label(&self.session.doc, take_back) {","highlight_start":26,"highlight_end":36}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find function `step_label` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1296:26\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1296\u001b[0m \u001b[1m\u001b[94m|\u001b[0m         let said = match step_label(&self.session.doc, take_back) {\n     \u001b[1m\u001b[94m|\u001b[0m                          \u001b[1m\u001b[91m^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mnot found in this scope\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"struct `app::App` does not have fields named `doc`, `theme`","code":{"code":"E0026","explanation":"A struct pattern attempted to extract a nonexistent field from a struct.\n\nErroneous code example:\n\n```compile_fail,E0026\nstruct Thing {\n    x: u32,\n    y: u32,\n}\n\nlet thing = Thing { x: 0, y: 0 };\n\nmatch thing {\n    Thing { x, z } => {} // error: `Thing::z` field doesn't exist\n}\n```\n\nIf you are using shorthand field patterns but want to refer to the struct field\nby a different name, you should rename it explicitly. Struct fields are\nidentified by the name used before the colon `:` so struct patterns should\nresemble the declaration of the struct type being matched.\n\n```\nstruct Thing {\n    x: u32,\n    y: u32,\n}\n\nlet thing = Thing { x: 0, y: 0 };\n\nmatch thing {\n    Thing { x, y: z } => {} // we renamed `y` to `z`\n}\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":57404,"byte_end":57409,"line_start":1325,"line_end":1325,"column_start":21,"column_end":26,"is_primary":true,"text":[{"text":"                    theme,","highlight_start":21,"highlight_end":26}],"label":"struct `app::App` does not have these fields","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":57343,"byte_end":57346,"line_start":1323,"line_end":1323,"column_start":21,"column_end":24,"is_primary":true,"text":[{"text":"                    doc,","highlight_start":21,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0026]\u001b[0m\u001b[1m: struct `app::App` does not have fields named `doc`, `theme`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1323:21\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1323\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     doc,\n     \u001b[1m\u001b[94m|\u001b[0m                     \u001b[1m\u001b[91m^^^\u001b[0m\n\u001b[1m\u001b[94m1324\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     history_search,\n\u001b[1m\u001b[94m1325\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     theme,\n     \u001b[1m\u001b[94m|\u001b[0m                     \u001b[1m\u001b[91m^^^^^\u001b[0m \u001b[1m\u001b[91mstruct `app::App` does not have these fields\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"no field `tool` on type `&mut app::App`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":58265,"byte_end":58269,"line_start":1345,"line_end":1345,"column_start":22,"column_end":26,"is_primary":true,"text":[{"text":"                    .tool","highlight_start":22,"highlight_end":26}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `tool` on type `&mut app::App`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1345:22\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1345\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     .tool\n     \u001b[1m\u001b[94m|\u001b[0m                      \u001b[1m\u001b[91m^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others\n\n"}
{"$message_type":"diagnostic","message":"no field `doc_index` on type `&mut app::App`","code":{"code":"E0609","explanation":"Attempted to access a nonexistent field in a struct.\n\nErroneous code example:\n\n```compile_fail,E0609\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.foo); // error: no field `foo` on type `StructWithFields`\n```\n\nTo fix this error, check that you didn't misspell the field's name or that the\nfield actually exists. Example:\n\n```\nstruct StructWithFields {\n    x: u32,\n}\n\nlet s = StructWithFields { x: 0 };\nprintln!(\"{}\", s.x); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":58559,"byte_end":58568,"line_start":1353,"line_end":1353,"column_start":22,"column_end":31,"is_primary":true,"text":[{"text":"                    .doc_index","highlight_start":22,"highlight_end":31}],"label":"unknown field","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0609]\u001b[0m\u001b[1m: no field `doc_index` on type `&mut app::App`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1353:22\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1353\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     .doc_index\n     \u001b[1m\u001b[94m|\u001b[0m                      \u001b[1m\u001b[91m^^^^^^^^^\u001b[0m \u001b[1m\u001b[91munknown field\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: available fields are: `session`, `opened`, `opened_from`, `failures`, `recent` ... and 21 others\n\n"}
{"$message_type":"diagnostic","message":"cannot find function `viewed` in this scope","code":{"code":"E0425","explanation":"An unresolved name was used.\n\nErroneous code examples:\n\n```compile_fail,E0425\nsomething_that_doesnt_exist::foo;\n// error: unresolved name `something_that_doesnt_exist::foo`\n\n// or:\n\ntrait Foo {\n    fn bar() {\n        Self; // error: unresolved name `Self`\n    }\n}\n\n// or:\n\nlet x = unknown_variable;  // error: unresolved name `unknown_variable`\n```\n\nPlease verify that the name wasn't misspelled and ensure that the\nidentifier being referred to is valid for the given situation. Example:\n\n```\nenum something_that_does_exist {\n    Foo,\n}\n```\n\nOr:\n\n```\nmod something_that_does_exist {\n    pub static foo : i32 = 0i32;\n}\n\nsomething_that_does_exist::foo; // ok!\n```\n\nOr:\n\n```\nlet unknown_variable = 12u32;\nlet x = unknown_variable; // ok!\n```\n\nIf the item is not defined in the current module, it must be imported using a\n`use` statement, like so:\n\n```\n# mod foo { pub fn bar() {} }\n# fn main() {\nuse foo::bar;\nbar();\n# }\n```\n\nIf the item you are importing is not defined in some super-module of the\ncurrent module, then it must also be declared as public (e.g., `pub fn`).\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":58595,"byte_end":58601,"line_start":1354,"line_end":1354,"column_start":27,"column_end":33,"is_primary":true,"text":[{"text":"                    .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());","highlight_start":27,"highlight_end":33}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"a local variable with a similar name exists","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":58595,"byte_end":58601,"line_start":1354,"line_end":1354,"column_start":27,"column_end":33,"is_primary":true,"text":[{"text":"                    .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());","highlight_start":27,"highlight_end":33}],"label":null,"suggested_replacement":"view","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0425]\u001b[0m\u001b[1m: cannot find function `viewed` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1354:27\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1354\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     .view(viewed(&self.session.doc, self.session.time_machine.as_ref()).document());\n     \u001b[1m\u001b[94m|\u001b[0m                           \u001b[1m\u001b[91m^^^^^^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: a local variable with a similar name exists\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1354\u001b[0m \u001b[91m- \u001b[0m                    .view(\u001b[91mviewed\u001b[0m(&self.session.doc, self.session.time_machine.as_ref()).document());\n\u001b[1m\u001b[94m1354\u001b[0m \u001b[92m+ \u001b[0m                    .view(\u001b[92mview\u001b[0m(&self.session.doc, self.session.time_machine.as_ref()).document());\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `CameraWork` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":70558,"byte_end":70568,"line_start":1610,"line_end":1610,"column_start":17,"column_end":27,"is_primary":true,"text":[{"text":"                CameraWork::Worked","highlight_start":17,"highlight_end":27}],"label":"use of undeclared type `CameraWork`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `CameraWork` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1610:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1610\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 CameraWork::Worked\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `CameraWork`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `CameraWork` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":70614,"byte_end":70624,"line_start":1612,"line_end":1612,"column_start":17,"column_end":27,"is_primary":true,"text":[{"text":"                CameraWork::Idle","highlight_start":17,"highlight_end":27}],"label":"use of undeclared type `CameraWork`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `CameraWork` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1612:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1612\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 CameraWork::Idle\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `CameraWork`\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"unused import: `Renderer`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/app.rs","byte_start":96,"byte_end":104,"line_start":2,"line_end":2,"column_start":49,"column_end":57,"is_primary":true,"text":[{"text":"use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};","highlight_start":49,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[1m\u001b[33mwarning\u001b[0m\u001b[1m: unused import: `Renderer`\u001b[0m\n \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:2:49\n  \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m2\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_paint::{Cursor, Font, FontChoice, Renderer, Saturation, Scheme};\n  \u001b[1m\u001b[94m|\u001b[0m                                                 \u001b[1m\u001b[33m^^^^^^^^\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Framing` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71693,"byte_end":71700,"line_start":1638,"line_end":1638,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::Zoom(step, anchor) => self.canvas.zoom_step(step, anchor),","highlight_start":17,"highlight_end":24}],"label":"use of undeclared type `Framing`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"a struct with a similar name exists","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71693,"byte_end":71700,"line_start":1638,"line_end":1638,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::Zoom(step, anchor) => self.canvas.zoom_step(step, anchor),","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":"Drawing","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Framing` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1638:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1638\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 Framing::Zoom(step, anchor) => self.canvas.zoom_step(step, anchor),\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Framing`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: a struct with a similar name exists\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1638\u001b[0m \u001b[91m- \u001b[0m                \u001b[91mFraming\u001b[0m::Zoom(step, anchor) => self.canvas.zoom_step(step, anchor),\n\u001b[1m\u001b[94m1638\u001b[0m \u001b[92m+ \u001b[0m                \u001b[92mDrawing\u001b[0m::Zoom(step, anchor) => self.canvas.zoom_step(step, anchor),\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Framing` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71547,"byte_end":71554,"line_start":1635,"line_end":1635,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::FocusOn(world) => {","highlight_start":17,"highlight_end":24}],"label":"use of undeclared type `Framing`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"a struct with a similar name exists","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71547,"byte_end":71554,"line_start":1635,"line_end":1635,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::FocusOn(world) => {","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":"Drawing","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Framing` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1635:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1635\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 Framing::FocusOn(world) => {\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Framing`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: a struct with a similar name exists\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1635\u001b[0m \u001b[91m- \u001b[0m                \u001b[91mFraming\u001b[0m::FocusOn(world) => {\n\u001b[1m\u001b[94m1635\u001b[0m \u001b[92m+ \u001b[0m                \u001b[92mDrawing\u001b[0m::FocusOn(world) => {\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Framing` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71386,"byte_end":71393,"line_start":1632,"line_end":1632,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::BringIntoView(world) => self","highlight_start":17,"highlight_end":24}],"label":"use of undeclared type `Framing`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"a struct with a similar name exists","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71386,"byte_end":71393,"line_start":1632,"line_end":1632,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::BringIntoView(world) => self","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":"Drawing","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Framing` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1632:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1632\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 Framing::BringIntoView(world) => self\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Framing`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: a struct with a similar name exists\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1632\u001b[0m \u001b[91m- \u001b[0m                \u001b[91mFraming\u001b[0m::BringIntoView(world) => self\n\u001b[1m\u001b[94m1632\u001b[0m \u001b[92m+ \u001b[0m                \u001b[92mDrawing\u001b[0m::BringIntoView(world) => self\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Framing` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71329,"byte_end":71336,"line_start":1631,"line_end":1631,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::Fit => self.session.fit_view(),","highlight_start":17,"highlight_end":24}],"label":"use of undeclared type `Framing`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"a struct with a similar name exists","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71329,"byte_end":71336,"line_start":1631,"line_end":1631,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::Fit => self.session.fit_view(),","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":"Drawing","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Framing` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1631:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1631\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 Framing::Fit => self.session.fit_view(),\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Framing`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: a struct with a similar name exists\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1631\u001b[0m \u001b[91m- \u001b[0m                \u001b[91mFraming\u001b[0m::Fit => self.session.fit_view(),\n\u001b[1m\u001b[94m1631\u001b[0m \u001b[92m+ \u001b[0m                \u001b[92mDrawing\u001b[0m::Fit => self.session.fit_view(),\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"cannot find type `Framing` in this scope","code":{"code":"E0433","explanation":"An undeclared crate, module, or type was used.\n\nErroneous code example:\n\n```compile_fail,E0433\nlet map = HashMap::new();\n// error: failed to resolve: use of undeclared type `HashMap`\n```\n\nPlease verify you didn't misspell the type/module's name or that you didn't\nforget to import it:\n\n```\nuse std::collections::HashMap; // HashMap has been imported.\nlet map: HashMap<u32, u32> = HashMap::new(); // So it can be used!\n```\n\nIf you've expected to use a crate name:\n\n```compile_fail\nuse ferris_wheel::BigO;\n// error: failed to resolve: use of undeclared module or unlinked crate\n```\n\nMake sure the crate has been added as a dependency in `Cargo.toml`.\n\nTo use a module from your current crate, add the `crate::` prefix to the path.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71253,"byte_end":71260,"line_start":1630,"line_end":1630,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::StandAt(vantage) => self.canvas.stand_at(vantage),","highlight_start":17,"highlight_end":24}],"label":"use of undeclared type `Framing`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"a struct with a similar name exists","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71253,"byte_end":71260,"line_start":1630,"line_end":1630,"column_start":17,"column_end":24,"is_primary":true,"text":[{"text":"                Framing::StandAt(vantage) => self.canvas.stand_at(vantage),","highlight_start":17,"highlight_end":24}],"label":null,"suggested_replacement":"Drawing","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0433]\u001b[0m\u001b[1m: cannot find type `Framing` in this scope\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1630:17\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1630\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 Framing::StandAt(vantage) => self.canvas.stand_at(vantage),\n     \u001b[1m\u001b[94m|\u001b[0m                 \u001b[1m\u001b[91m^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of undeclared type `Framing`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: a struct with a similar name exists\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1630\u001b[0m \u001b[91m- \u001b[0m                \u001b[91mFraming\u001b[0m::StandAt(vantage) => self.canvas.stand_at(vantage),\n\u001b[1m\u001b[94m1630\u001b[0m \u001b[92m+ \u001b[0m                \u001b[92mDrawing\u001b[0m::StandAt(vantage) => self.canvas.stand_at(vantage),\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 30 previous errors; 8 warnings emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 30 previous errors; 8 warnings emitted\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0026, E0422, E0425, E0433, E0599, E0609.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mSome errors have detailed explanations: E0026, E0422, E0425, E0433, E0599, E0609.\u001b[0m\n"}
{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0026`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mFor more information about an error, try `rustc --explain E0026`.\u001b[0m\n"}
