{"$message_type":"diagnostic","message":"unused import: `FontFamily`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/theme/mod.rs","byte_start":34,"byte_end":44,"line_start":1,"line_end":1,"column_start":35,"column_end":45,"is_primary":true,"text":[{"text":"use blockworx_geom::{Color, Font, FontFamily};","highlight_start":35,"highlight_end":45}],"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/theme/mod.rs","byte_start":32,"byte_end":44,"line_start":1,"line_end":1,"column_start":33,"column_end":45,"is_primary":true,"text":[{"text":"use blockworx_geom::{Color, Font, FontFamily};","highlight_start":33,"highlight_end":45}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/mod.rs:1:35: \u001b[1m\u001b[33mwarning\u001b[0m: unused import: `FontFamily`\n"}
{"$message_type":"diagnostic","message":"method `rect` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":17340,"byte_end":17344,"line_start":406,"line_end":406,"column_start":15,"column_end":19,"is_primary":true,"text":[{"text":"        rect: Rect,","highlight_start":15,"highlight_end":19}],"label":"expected `blockworx_geom::Rect`, found `egui::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":1868,"byte_end":1872,"line_start":48,"line_end":48,"column_start":15,"column_end":19,"is_primary":true,"text":[{"text":"        rect: Rect,","highlight_start":15,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, blockworx_geom::Rect, blockworx_geom::Bounded<_>, _, _)`\n   found signature `fn(&painter::Painter, egui::Rect, blockworx_geom::Bounded<_>, _, _)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":17340,"byte_end":17344,"line_start":406,"line_end":406,"column_start":15,"column_end":19,"is_primary":true,"text":[{"text":"        rect: Rect,","highlight_start":15,"highlight_end":19}],"label":null,"suggested_replacement":"blockworx_geom::Rect","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:406:15: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `rect` has an incompatible type for trait: expected `blockworx_geom::Rect`, found `egui::Rect`\n"}
{"$message_type":"diagnostic","message":"method `line_segment` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":17827,"byte_end":17836,"line_start":422,"line_end":422,"column_start":36,"column_end":45,"is_primary":true,"text":[{"text":"    fn line_segment(&self, points: [Pos2; 2], stroke: impl Into<PaletteStroke>) {","highlight_start":36,"highlight_end":45}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":2019,"byte_end":2028,"line_start":54,"line_end":54,"column_start":36,"column_end":45,"is_primary":true,"text":[{"text":"    fn line_segment(&self, points: [Pos2; 2], stroke: impl Into<PaletteStroke>);","highlight_start":36,"highlight_end":45}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, [blockworx_geom::Pos2; 2], _)`\n   found signature `fn(&painter::Painter, [egui::Pos2; 2], _)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":17827,"byte_end":17836,"line_start":422,"line_end":422,"column_start":36,"column_end":45,"is_primary":true,"text":[{"text":"    fn line_segment(&self, points: [Pos2; 2], stroke: impl Into<PaletteStroke>) {","highlight_start":36,"highlight_end":45}],"label":null,"suggested_replacement":"[blockworx_geom::Pos2; 2]","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:422:36: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `line_segment` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `line` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":18047,"byte_end":18056,"line_start":429,"line_end":429,"column_start":28,"column_end":37,"is_primary":true,"text":[{"text":"    fn line(&self, points: Vec<Pos2>, stroke: impl Into<PaletteStroke>) {","highlight_start":28,"highlight_end":37}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":2093,"byte_end":2102,"line_start":56,"line_end":56,"column_start":28,"column_end":37,"is_primary":true,"text":[{"text":"    fn line(&self, points: Vec<Pos2>, stroke: impl Into<PaletteStroke>);","highlight_start":28,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, std::vec::Vec<blockworx_geom::Pos2>, _)`\n   found signature `fn(&painter::Painter, std::vec::Vec<egui::Pos2>, _)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":18047,"byte_end":18056,"line_start":429,"line_end":429,"column_start":28,"column_end":37,"is_primary":true,"text":[{"text":"    fn line(&self, points: Vec<Pos2>, stroke: impl Into<PaletteStroke>) {","highlight_start":28,"highlight_end":37}],"label":null,"suggested_replacement":"std::vec::Vec<blockworx_geom::Pos2>","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:429:28: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `line` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `circle` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":18304,"byte_end":18308,"line_start":436,"line_end":436,"column_start":17,"column_end":21,"is_primary":true,"text":[{"text":"        center: Pos2,","highlight_start":17,"highlight_end":21}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":2186,"byte_end":2190,"line_start":60,"line_end":60,"column_start":17,"column_end":21,"is_primary":true,"text":[{"text":"        center: Pos2,","highlight_start":17,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, blockworx_geom::Pos2, blockworx_geom::Bounded<_>, _, _)`\n   found signature `fn(&painter::Painter, egui::Pos2, blockworx_geom::Bounded<_>, _, _)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":18304,"byte_end":18308,"line_start":436,"line_end":436,"column_start":17,"column_end":21,"is_primary":true,"text":[{"text":"        center: Pos2,","highlight_start":17,"highlight_end":21}],"label":null,"suggested_replacement":"blockworx_geom::Pos2","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:436:17: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `circle` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `add_convex_polygon` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":18654,"byte_end":18663,"line_start":451,"line_end":451,"column_start":17,"column_end":26,"is_primary":true,"text":[{"text":"        points: Vec<Pos2>,","highlight_start":17,"highlight_end":26}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":2358,"byte_end":2367,"line_start":68,"line_end":68,"column_start":17,"column_end":26,"is_primary":true,"text":[{"text":"        points: Vec<Pos2>,","highlight_start":17,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, std::vec::Vec<blockworx_geom::Pos2>, _, _)`\n   found signature `fn(&painter::Painter, std::vec::Vec<egui::Pos2>, _, _)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":18654,"byte_end":18663,"line_start":451,"line_end":451,"column_start":17,"column_end":26,"is_primary":true,"text":[{"text":"        points: Vec<Pos2>,","highlight_start":17,"highlight_end":26}],"label":null,"suggested_replacement":"std::vec::Vec<blockworx_geom::Pos2>","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:451:17: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `add_convex_polygon` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `text` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":19075,"byte_end":19079,"line_start":466,"line_end":466,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":2766,"byte_end":2770,"line_start":79,"line_end":79,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, blockworx_geom::Pos2, blockworx_geom::Align2, _, &blockworx_geom::Font, _) -> blockworx_geom::Rect`\n   found signature `fn(&painter::Painter, egui::Pos2, egui::Align2, _, &egui::FontId, _) -> egui::Rect`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":19075,"byte_end":19079,"line_start":466,"line_end":466,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":"blockworx_geom::Pos2","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:466:14: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `text` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `text_wrapped` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":19346,"byte_end":19350,"line_start":477,"line_end":477,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":3986,"byte_end":3990,"line_start":110,"line_end":110,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, blockworx_geom::Pos2, blockworx_geom::Align2, _, &blockworx_geom::Font, _, blockworx_geom::Bounded<_>) -> blockworx_geom::Rect`\n   found signature `fn(&painter::Painter, egui::Pos2, egui::Align2, _, &egui::FontId, _, blockworx_geom::Bounded<_>) -> egui::Rect`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":19346,"byte_end":19350,"line_start":477,"line_end":477,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":"blockworx_geom::Pos2","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:477:14: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `text_wrapped` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `rotated_text` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":19865,"byte_end":19869,"line_start":492,"line_end":492,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":3218,"byte_end":3222,"line_start":92,"line_end":92,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, blockworx_geom::Pos2, blockworx_geom::Align2, _, &blockworx_geom::Font, _, _)`\n   found signature `fn(&painter::Painter, egui::Pos2, egui::Align2, _, &egui::FontId, _, _)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":19865,"byte_end":19869,"line_start":492,"line_end":492,"column_start":14,"column_end":18,"is_primary":true,"text":[{"text":"        pos: Pos2,","highlight_start":14,"highlight_end":18}],"label":null,"suggested_replacement":"blockworx_geom::Pos2","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:492:14: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `rotated_text` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `text_size` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":20364,"byte_end":20371,"line_start":506,"line_end":506,"column_start":52,"column_end":59,"is_primary":true,"text":[{"text":"    fn text_size(&self, text: impl ToString, font: &FontId) -> Vec2 {","highlight_start":52,"highlight_end":59}],"label":"expected `blockworx_geom::Font`, found `egui::FontId`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":4253,"byte_end":4258,"line_start":120,"line_end":120,"column_start":52,"column_end":57,"is_primary":true,"text":[{"text":"    fn text_size(&self, text: impl ToString, font: &Font) -> Vec2;","highlight_start":52,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, _, &blockworx_geom::Font) -> blockworx_geom::Vec2`\n   found signature `fn(&painter::Painter, _, &egui::FontId) -> egui::Vec2`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":20364,"byte_end":20371,"line_start":506,"line_end":506,"column_start":52,"column_end":59,"is_primary":true,"text":[{"text":"    fn text_size(&self, text: impl ToString, font: &FontId) -> Vec2 {","highlight_start":52,"highlight_end":59}],"label":null,"suggested_replacement":"&blockworx_geom::Font","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:506:52: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `text_size` has an incompatible type for trait: expected `blockworx_geom::Font`, found `egui::FontId`\n"}
{"$message_type":"diagnostic","message":"method `text_size_wrapped` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":20510,"byte_end":20517,"line_start":510,"line_end":510,"column_start":60,"column_end":67,"is_primary":true,"text":[{"text":"    fn text_size_wrapped(&self, text: impl ToString, font: &FontId, max_width: WorldPx) -> Vec2 {","highlight_start":60,"highlight_end":67}],"label":"expected `blockworx_geom::Font`, found `egui::FontId`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":4451,"byte_end":4456,"line_start":124,"line_end":124,"column_start":60,"column_end":65,"is_primary":true,"text":[{"text":"    fn text_size_wrapped(&self, text: impl ToString, font: &Font, _max_width: WorldPx) -> Vec2 {","highlight_start":60,"highlight_end":65}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, _, &blockworx_geom::Font, blockworx_geom::Bounded<_>) -> blockworx_geom::Vec2`\n   found signature `fn(&painter::Painter, _, &egui::FontId, blockworx_geom::Bounded<_>) -> egui::Vec2`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":20510,"byte_end":20517,"line_start":510,"line_end":510,"column_start":60,"column_end":67,"is_primary":true,"text":[{"text":"    fn text_size_wrapped(&self, text: impl ToString, font: &FontId, max_width: WorldPx) -> Vec2 {","highlight_start":60,"highlight_end":67}],"label":null,"suggested_replacement":"&blockworx_geom::Font","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:510:60: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `text_size_wrapped` has an incompatible type for trait: expected `blockworx_geom::Font`, found `egui::FontId`\n"}
{"$message_type":"diagnostic","message":"method `draw_image` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":20977,"byte_end":20981,"line_start":519,"line_end":519,"column_start":32,"column_end":36,"is_primary":true,"text":[{"text":"    fn draw_image(&self, rect: Rect, image: &Asset) {","highlight_start":32,"highlight_end":36}],"label":"expected `blockworx_geom::Rect`, found `egui::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":4977,"byte_end":4981,"line_start":134,"line_end":134,"column_start":32,"column_end":36,"is_primary":true,"text":[{"text":"    fn draw_image(&self, rect: Rect, image: &Asset);","highlight_start":32,"highlight_end":36}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, blockworx_geom::Rect, &blockworx_doc::block_model::Asset)`\n   found signature `fn(&painter::Painter, egui::Rect, &blockworx_doc::block_model::Asset)`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the parameter type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":20977,"byte_end":20981,"line_start":519,"line_end":519,"column_start":32,"column_end":36,"is_primary":true,"text":[{"text":"    fn draw_image(&self, rect: Rect, image: &Asset) {","highlight_start":32,"highlight_end":36}],"label":null,"suggested_replacement":"blockworx_geom::Rect","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:519:32: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `draw_image` has an incompatible type for trait: expected `blockworx_geom::Rect`, found `egui::Rect`\n"}
{"$message_type":"diagnostic","message":"method `image_intrinsic_size` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":21375,"byte_end":21387,"line_start":528,"line_end":528,"column_start":54,"column_end":66,"is_primary":true,"text":[{"text":"    fn image_intrinsic_size(&self, image: &Asset) -> Option<Vec2> {","highlight_start":54,"highlight_end":66}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":5250,"byte_end":5262,"line_start":139,"line_end":139,"column_start":54,"column_end":66,"is_primary":true,"text":[{"text":"    fn image_intrinsic_size(&self, image: &Asset) -> Option<Vec2>;","highlight_start":54,"highlight_end":66}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter, &blockworx_doc::block_model::Asset) -> std::option::Option<blockworx_geom::Vec2>`\n   found signature `fn(&painter::Painter, &blockworx_doc::block_model::Asset) -> std::option::Option<egui::Vec2>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the output type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":21375,"byte_end":21387,"line_start":528,"line_end":528,"column_start":54,"column_end":66,"is_primary":true,"text":[{"text":"    fn image_intrinsic_size(&self, image: &Asset) -> Option<Vec2> {","highlight_start":54,"highlight_end":66}],"label":null,"suggested_replacement":"std::option::Option<blockworx_geom::Vec2>","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:528:54: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `image_intrinsic_size` has an incompatible type for trait: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"method `anim_target` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":21576,"byte_end":21613,"line_start":536,"line_end":536,"column_start":30,"column_end":67,"is_primary":true,"text":[{"text":"    fn anim_target(&self) -> Option<(egui::Context, Option<Pos2>)> {","highlight_start":30,"highlight_end":67}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":5702,"byte_end":5739,"line_start":147,"line_end":147,"column_start":30,"column_end":67,"is_primary":true,"text":[{"text":"    fn anim_target(&self) -> Option<(egui::Context, Option<Pos2>)> {","highlight_start":30,"highlight_end":67}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter) -> std::option::Option<(egui::Context, std::option::Option<blockworx_geom::Pos2>)>`\n   found signature `fn(&painter::Painter) -> std::option::Option<(egui::Context, std::option::Option<egui::Pos2>)>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the output type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":21576,"byte_end":21613,"line_start":536,"line_end":536,"column_start":30,"column_end":67,"is_primary":true,"text":[{"text":"    fn anim_target(&self) -> Option<(egui::Context, Option<Pos2>)> {","highlight_start":30,"highlight_end":67}],"label":null,"suggested_replacement":"std::option::Option<(egui::Context, std::option::Option<blockworx_geom::Pos2>)>","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:536:30: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `anim_target` has an incompatible type for trait: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"method `visible_world_bounds` has an incompatible type for trait","code":{"code":"E0053","explanation":"The parameters of any trait method must match between a trait implementation\nand the trait definition.\n\nErroneous code example:\n\n```compile_fail,E0053\ntrait Foo {\n    fn foo(x: u16);\n    fn bar(&self);\n}\n\nstruct Bar;\n\nimpl Foo for Bar {\n    // error, expected u16, found i16\n    fn foo(x: i16) { }\n\n    // error, types differ in mutability\n    fn bar(&mut self) { }\n}\n```\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":21856,"byte_end":21868,"line_start":542,"line_end":542,"column_start":39,"column_end":51,"is_primary":true,"text":[{"text":"    fn visible_world_bounds(&self) -> Option<Rect> {","highlight_start":39,"highlight_end":51}],"label":"expected `blockworx_geom::Rect`, found `egui::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"type in trait","code":null,"level":"note","spans":[{"file_name":"src/canvas/mod.rs","byte_start":6169,"byte_end":6181,"line_start":156,"line_end":156,"column_start":39,"column_end":51,"is_primary":true,"text":[{"text":"    fn visible_world_bounds(&self) -> Option<Rect> {","highlight_start":39,"highlight_end":51}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected signature `fn(&painter::Painter) -> std::option::Option<blockworx_geom::Rect>`\n   found signature `fn(&painter::Painter) -> std::option::Option<egui::Rect>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"change the output type to match the trait","code":null,"level":"help","spans":[{"file_name":"src/canvas/painter.rs","byte_start":21856,"byte_end":21868,"line_start":542,"line_end":542,"column_start":39,"column_end":51,"is_primary":true,"text":[{"text":"    fn visible_world_bounds(&self) -> Option<Rect> {","highlight_start":39,"highlight_end":51}],"label":null,"suggested_replacement":"std::option::Option<blockworx_geom::Rect>","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/painter.rs:542:39: \u001b[1m\u001b[91merror[E0053]\u001b[0m: method `visible_world_bounds` has an incompatible type for trait: expected `blockworx_geom::Rect`, found `egui::Rect`\n"}
{"$message_type":"diagnostic","message":"arguments to this method are incorrect","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":16831,"byte_end":16852,"line_start":372,"line_end":372,"column_start":21,"column_end":42,"is_primary":false,"text":[{"text":"                    Align2::CENTER_CENTER,","highlight_start":21,"highlight_end":42}],"label":"expected `blockworx_geom::Align2`, found `egui::Align2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":16917,"byte_end":16922,"line_start":374,"line_end":374,"column_start":21,"column_end":26,"is_primary":false,"text":[{"text":"                    &font,","highlight_start":21,"highlight_end":26}],"label":"expected `&Font`, found `&FontId`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":16780,"byte_end":16784,"line_start":370,"line_end":370,"column_start":25,"column_end":29,"is_primary":true,"text":[{"text":"                painter.text(","highlight_start":25,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Align2` and `blockworx_geom::Align2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Align2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/align.rs","byte_start":5894,"byte_end":5911,"line_start":151,"line_end":151,"column_start":1,"column_end":18,"is_primary":true,"text":[{"text":"pub struct Align2(pub [Align; 2]);","highlight_start":1,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Align2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/align.rs","byte_start":341,"byte_end":358,"line_start":18,"line_end":18,"column_start":1,"column_end":18,"is_primary":true,"text":[{"text":"pub struct Align2(pub [Align; 2]);","highlight_start":1,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"expected reference `&blockworx_geom::Font`\n   found reference `&egui::FontId`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/theme/style.rs","byte_start":4397,"byte_end":4411,"line_start":119,"line_end":119,"column_start":9,"column_end":23,"is_primary":false,"text":[{"text":"        anchor: Align2,","highlight_start":9,"highlight_end":23}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/style.rs","byte_start":4450,"byte_end":4461,"line_start":121,"line_end":121,"column_start":9,"column_end":20,"is_primary":false,"text":[{"text":"        font: &Font,","highlight_start":9,"highlight_end":20}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/style.rs","byte_start":4349,"byte_end":4353,"line_start":116,"line_end":116,"column_start":12,"column_end":16,"is_primary":true,"text":[{"text":"    pub fn text(","highlight_start":12,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:370:25: \u001b[1m\u001b[91merror[E0308]\u001b[0m: arguments to this method are incorrect\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":54152,"byte_end":54158,"line_start":1295,"line_end":1295,"column_start":34,"column_end":40,"is_primary":true,"text":[{"text":"                .bring_into_view(region, crate::canvas::view::Framing::Immediate);","highlight_start":34,"highlight_end":40}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":54136,"byte_end":54151,"line_start":1295,"line_end":1295,"column_start":18,"column_end":33,"is_primary":false,"text":[{"text":"                .bring_into_view(region, crate::canvas::view::Framing::Immediate);","highlight_start":18,"highlight_end":33}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/view.rs","byte_start":15622,"byte_end":15635,"line_start":396,"line_end":396,"column_start":39,"column_end":52,"is_primary":false,"text":[{"text":"    pub fn bring_into_view(&mut self, content: Rect, framing: Framing) {","highlight_start":39,"highlight_end":52}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/view.rs","byte_start":15595,"byte_end":15610,"line_start":396,"line_end":396,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"    pub fn bring_into_view(&mut self, content: Rect, framing: Framing) {","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1295:34: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":54552,"byte_end":54558,"line_start":1304,"line_end":1304,"column_start":27,"column_end":33,"is_primary":true,"text":[{"text":"                .focus_on(region, crate::canvas::view::Framing::Immediate);","highlight_start":27,"highlight_end":33}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":54543,"byte_end":54551,"line_start":1304,"line_end":1304,"column_start":18,"column_end":26,"is_primary":false,"text":[{"text":"                .focus_on(region, crate::canvas::view::Framing::Immediate);","highlight_start":18,"highlight_end":26}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/view.rs","byte_start":14745,"byte_end":14758,"line_start":378,"line_end":378,"column_start":32,"column_end":45,"is_primary":false,"text":[{"text":"    pub fn focus_on(&mut self, content: Rect, framing: Framing) {","highlight_start":32,"highlight_end":45}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/view.rs","byte_start":14725,"byte_end":14733,"line_start":378,"line_end":378,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":"    pub fn focus_on(&mut self, content: Rect, framing: Framing) {","highlight_start":12,"highlight_end":20}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1304:27: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":59654,"byte_end":59659,"line_start":1420,"line_end":1420,"column_start":80,"column_end":85,"is_primary":true,"text":[{"text":"                self.commit_gesture(Label::verb(\"Nudge\"), |d| d.move_shape(id, delta));","highlight_start":80,"highlight_end":85}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":59639,"byte_end":59649,"line_start":1420,"line_end":1420,"column_start":65,"column_end":75,"is_primary":false,"text":[{"text":"                self.commit_gesture(Label::verb(\"Nudge\"), |d| d.move_shape(id, delta));","highlight_start":65,"highlight_end":75}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/movement.rs","byte_start":1681,"byte_end":1692,"line_start":47,"line_end":47,"column_start":47,"column_end":58,"is_primary":false,"text":[{"text":"    pub fn move_shape(&mut self, id: ShapeId, delta: Vec2) {","highlight_start":47,"highlight_end":58}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/movement.rs","byte_start":1646,"byte_end":1656,"line_start":47,"line_end":47,"column_start":12,"column_end":22,"is_primary":true,"text":[{"text":"    pub fn move_shape(&mut self, id: ShapeId, delta: Vec2) {","highlight_start":12,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1420:80: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":59799,"byte_end":59804,"line_start":1423,"line_end":1423,"column_start":83,"column_end":88,"is_primary":true,"text":[{"text":"                self.commit_gesture(Label::verb(\"Nudge\"), |d| d.move_shapes(&ids, delta));","highlight_start":83,"highlight_end":88}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":59781,"byte_end":59792,"line_start":1423,"line_end":1423,"column_start":65,"column_end":76,"is_primary":false,"text":[{"text":"                self.commit_gesture(Label::verb(\"Nudge\"), |d| d.move_shapes(&ids, delta));","highlight_start":65,"highlight_end":76}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/movement.rs","byte_start":5939,"byte_end":5950,"line_start":144,"line_end":144,"column_start":52,"column_end":63,"is_primary":false,"text":[{"text":"    pub fn move_shapes(&mut self, ids: &[ShapeId], delta: Vec2) {","highlight_start":52,"highlight_end":63}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/movement.rs","byte_start":5899,"byte_end":5910,"line_start":144,"line_end":144,"column_start":12,"column_end":23,"is_primary":true,"text":[{"text":"    pub fn move_shapes(&mut self, ids: &[ShapeId], delta: Vec2) {","highlight_start":12,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1423:83: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":70307,"byte_end":70311,"line_start":1648,"line_end":1648,"column_start":69,"column_end":73,"is_primary":true,"text":[{"text":"                    d.add_image(crate::edit::assets::Placement::Box(rect), &asset)","highlight_start":69,"highlight_end":73}],"label":"expected `blockworx_geom::Rect`, found `egui::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":70271,"byte_end":70306,"line_start":1648,"line_end":1648,"column_start":33,"column_end":68,"is_primary":false,"text":[{"text":"                    d.add_image(crate::edit::assets::Placement::Box(rect), &asset)","highlight_start":33,"highlight_end":68}],"label":"arguments to this enum variant are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Rect` and `blockworx_geom::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"tuple variant defined here","code":null,"level":"note","spans":[{"file_name":"src/edit/assets.rs","byte_start":1457,"byte_end":1460,"line_start":37,"line_end":37,"column_start":5,"column_end":8,"is_primary":true,"text":[{"text":"    Box(Rect),","highlight_start":5,"highlight_end":8}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1648:69: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Rect`, found `egui::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71153,"byte_end":71159,"line_start":1665,"line_end":1665,"column_start":55,"column_end":61,"is_primary":true,"text":[{"text":"            d.paste_snapshot(&insert.clip, into, Some(target))","highlight_start":55,"highlight_end":61}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":71148,"byte_end":71152,"line_start":1665,"line_end":1665,"column_start":50,"column_end":54,"is_primary":false,"text":[{"text":"            d.paste_snapshot(&insert.clip, into, Some(target))","highlight_start":50,"highlight_end":54}],"label":"arguments to this enum variant are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"the type constructed contains `egui::Pos2` due to the type of the argument passed","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71153,"byte_end":71159,"line_start":1665,"line_end":1665,"column_start":55,"column_end":61,"is_primary":false,"text":[{"text":"            d.paste_snapshot(&insert.clip, into, Some(target))","highlight_start":55,"highlight_end":61}],"label":"this argument influences the type of `Some`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":71148,"byte_end":71160,"line_start":1665,"line_end":1665,"column_start":50,"column_end":62,"is_primary":true,"text":[{"text":"            d.paste_snapshot(&insert.clip, into, Some(target))","highlight_start":50,"highlight_end":62}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"tuple variant defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs","byte_start":24369,"byte_end":24373,"line_start":608,"line_end":608,"column_start":5,"column_end":9,"is_primary":true,"text":[{"text":"    Some(#[stable(feature = \"rust1\", since = \"1.0.0\")] T),","highlight_start":5,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1665:55: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"type mismatch in function arguments","code":{"code":"E0631","explanation":"This error indicates a type mismatch in closure arguments.\n\nErroneous code example:\n\n```compile_fail,E0631\nfn foo<F: Fn(i32)>(f: F) {\n}\n\nfn main() {\n    foo(|x: &str| {});\n}\n```\n\nThe error occurs because `foo` accepts a closure that takes an `i32` argument,\nbut in `main`, it is passed a closure with a `&str` argument.\n\nThis can be resolved by changing the type annotation or removing it entirely\nif it can be inferred.\n\n```\nfn foo<F: Fn(i32)>(f: F) {\n}\n\nfn main() {\n    foo(|x: i32| {});\n}\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71815,"byte_end":71832,"line_start":1680,"line_end":1680,"column_start":21,"column_end":38,"is_primary":true,"text":[{"text":"            .reduce(egui::Rect::union)","highlight_start":21,"highlight_end":38}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":71815,"byte_end":71832,"line_start":1680,"line_end":1680,"column_start":21,"column_end":38,"is_primary":true,"text":[{"text":"            .reduce(egui::Rect::union)","highlight_start":21,"highlight_end":38}],"label":"found signature defined here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":71808,"byte_end":71814,"line_start":1680,"line_end":1680,"column_start":14,"column_end":20,"is_primary":false,"text":[{"text":"            .reduce(egui::Rect::union)","highlight_start":14,"highlight_end":20}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"expected function signature `fn(blockworx_geom::Rect, blockworx_geom::Rect) -> _`\n   found function signature `fn(egui::Rect, egui::Rect) -> _`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `reduce`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs","byte_start":92801,"byte_end":92807,"line_start":2703,"line_end":2703,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"    fn reduce<F>(mut self, f: F) -> Option<Self::Item>","highlight_start":8,"highlight_end":14}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs","byte_start":92910,"byte_end":92961,"line_start":2706,"line_end":2706,"column_start":12,"column_end":63,"is_primary":true,"text":[{"text":"        F: [const] FnMut(Self::Item, Self::Item) -> Self::Item + [const] Destruct,","highlight_start":12,"highlight_end":63}],"label":"required by this bound in `Iterator::reduce`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"consider wrapping the function in a closure","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71815,"byte_end":71815,"line_start":1680,"line_end":1680,"column_start":21,"column_end":21,"is_primary":true,"text":[{"text":"            .reduce(egui::Rect::union)","highlight_start":21,"highlight_end":21}],"label":null,"suggested_replacement":"|arg0: blockworx_geom::Rect, arg1: blockworx_geom::Rect| ","suggestion_applicability":"MaybeIncorrect","expansion":null},{"file_name":"src/app.rs","byte_start":71832,"byte_end":71832,"line_start":1680,"line_end":1680,"column_start":38,"column_end":38,"is_primary":true,"text":[{"text":"            .reduce(egui::Rect::union)","highlight_start":38,"highlight_end":38}],"label":null,"suggested_replacement":"(/* egui::Rect */, /* egui::Rect */)","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1680:21: \u001b[1m\u001b[91merror[E0631]\u001b[0m: type mismatch in function arguments: expected due to this, found signature defined here\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71929,"byte_end":71935,"line_start":1685,"line_end":1685,"column_start":30,"column_end":36,"is_primary":true,"text":[{"text":"            .bring_into_view(bounds, crate::canvas::view::Framing::Animated);","highlight_start":30,"highlight_end":36}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":71913,"byte_end":71928,"line_start":1685,"line_end":1685,"column_start":14,"column_end":29,"is_primary":false,"text":[{"text":"            .bring_into_view(bounds, crate::canvas::view::Framing::Animated);","highlight_start":14,"highlight_end":29}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/view.rs","byte_start":15622,"byte_end":15635,"line_start":396,"line_end":396,"column_start":39,"column_end":52,"is_primary":false,"text":[{"text":"    pub fn bring_into_view(&mut self, content: Rect, framing: Framing) {","highlight_start":39,"highlight_end":52}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/view.rs","byte_start":15595,"byte_end":15610,"line_start":396,"line_end":396,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"    pub fn bring_into_view(&mut self, content: Rect, framing: Framing) {","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:1685:30: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":86716,"byte_end":86769,"line_start":1999,"line_end":1999,"column_start":25,"column_end":78,"is_primary":true,"text":[{"text":"            background: palette.resolve(theme.swatch(Role::CanvasBackground)),","highlight_start":25,"highlight_end":78}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/app.rs:1999:25: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":86789,"byte_end":86834,"line_start":2000,"line_end":2000,"column_start":19,"column_end":64,"is_primary":true,"text":[{"text":"            grid: palette.resolve(theme.swatch(Role::GridLine)),","highlight_start":19,"highlight_end":64}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/app.rs:2000:19: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":88074,"byte_end":88125,"line_start":2025,"line_end":2025,"column_start":37,"column_end":88,"is_primary":true,"text":[{"text":"            canvas.fit_to(|painter| drawing.content_bounds(&Style::new(theme, painter)));","highlight_start":37,"highlight_end":88}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2025:37: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":91124,"byte_end":91130,"line_start":2081,"line_end":2081,"column_start":53,"column_end":59,"is_primary":true,"text":[{"text":"                        Some(Rect::from_center_size(anchor, vec2(GRID_SIZE, GRID_SIZE)))","highlight_start":53,"highlight_end":59}],"label":"expected `egui::Pos2`, found `blockworx_geom::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":91101,"byte_end":91123,"line_start":2081,"line_end":2081,"column_start":30,"column_end":52,"is_primary":false,"text":[{"text":"                        Some(Rect::from_center_size(anchor, vec2(GRID_SIZE, GRID_SIZE)))","highlight_start":30,"highlight_end":52}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Pos2` and `egui::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":2892,"byte_end":2908,"line_start":87,"line_end":87,"column_start":12,"column_end":28,"is_primary":true,"text":[{"text":"    pub fn from_center_size(center: Pos2, size: Vec2) -> Self {","highlight_start":12,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2081:53: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Pos2`, found `blockworx_geom::Pos2`\n"}
{"$message_type":"diagnostic","message":"`match` arms have incompatible types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":91211,"byte_end":91336,"line_start":2083,"line_end":2085,"column_start":29,"column_end":22,"is_primary":true,"text":[{"text":"                    None => crate::tools::selection_bounds::selection_world_bounds(","highlight_start":29,"highlight_end":84},{"text":"                        &sel, &drawing, &style,","highlight_start":1,"highlight_end":48},{"text":"                    ),","highlight_start":1,"highlight_end":22}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":91096,"byte_end":91160,"line_start":2081,"line_end":2081,"column_start":25,"column_end":89,"is_primary":false,"text":[{"text":"                        Some(Rect::from_center_size(anchor, vec2(GRID_SIZE, GRID_SIZE)))","highlight_start":25,"highlight_end":89}],"label":"this is found to be of type `std::option::Option<egui::Rect>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":90999,"byte_end":91031,"line_start":2079,"line_end":2079,"column_start":29,"column_end":61,"is_primary":false,"text":[{"text":"                let world = match self.tool.overlay_anchor() {","highlight_start":29,"highlight_end":61}],"label":"`match` arms have incompatible types","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2083:29: \u001b[1m\u001b[91merror[E0308]\u001b[0m: `match` arms have incompatible types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"type mismatch in function arguments","code":{"code":"E0631","explanation":"This error indicates a type mismatch in closure arguments.\n\nErroneous code example:\n\n```compile_fail,E0631\nfn foo<F: Fn(i32)>(f: F) {\n}\n\nfn main() {\n    foo(|x: &str| {});\n}\n```\n\nThe error occurs because `foo` accepts a closure that takes an `i32` argument,\nbut in `main`, it is passed a closure with a `&str` argument.\n\nThis can be resolved by changing the type annotation or removing it entirely\nif it can be inferred.\n\n```\nfn foo<F: Fn(i32)>(f: F) {\n}\n\nfn main() {\n    foo(|x: i32| {});\n}\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":99430,"byte_end":99442,"line_start":2291,"line_end":2291,"column_start":48,"column_end":60,"is_primary":true,"text":[{"text":"            .then(|| self.last_hover_world.map(GridCell::at))","highlight_start":48,"highlight_end":60}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":99430,"byte_end":99442,"line_start":2291,"line_end":2291,"column_start":48,"column_end":60,"is_primary":true,"text":[{"text":"            .then(|| self.last_hover_world.map(GridCell::at))","highlight_start":48,"highlight_end":60}],"label":"found signature defined here","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":99426,"byte_end":99429,"line_start":2291,"line_end":2291,"column_start":44,"column_end":47,"is_primary":false,"text":[{"text":"            .then(|| self.last_hover_world.map(GridCell::at))","highlight_start":44,"highlight_end":47}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"expected function signature `fn(egui::Pos2) -> _`\n   found function signature `fn(blockworx_geom::Pos2) -> _`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `std::option::Option::<T>::map`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs","byte_start":44298,"byte_end":44301,"line_start":1160,"line_end":1160,"column_start":18,"column_end":21,"is_primary":false,"text":[{"text":"    pub const fn map<U, F>(self, f: F) -> Option<U>","highlight_start":18,"highlight_end":21}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/option.rs","byte_start":44354,"byte_end":44376,"line_start":1162,"line_end":1162,"column_start":12,"column_end":34,"is_primary":true,"text":[{"text":"        F: [const] FnOnce(T) -> U + [const] Destruct,","highlight_start":12,"highlight_end":34}],"label":"required by this bound in `Option::<T>::map`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"consider wrapping the function in a closure","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":99430,"byte_end":99430,"line_start":2291,"line_end":2291,"column_start":48,"column_end":48,"is_primary":true,"text":[{"text":"            .then(|| self.last_hover_world.map(GridCell::at))","highlight_start":48,"highlight_end":48}],"label":null,"suggested_replacement":"|arg0: egui::Pos2| ","suggestion_applicability":"MaybeIncorrect","expansion":null},{"file_name":"src/app.rs","byte_start":99442,"byte_end":99442,"line_start":2291,"line_end":2291,"column_start":60,"column_end":60,"is_primary":true,"text":[{"text":"            .then(|| self.last_hover_world.map(GridCell::at))","highlight_start":60,"highlight_end":60}],"label":null,"suggested_replacement":"(/* blockworx_geom::Pos2 */)","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2291:48: \u001b[1m\u001b[91merror[E0631]\u001b[0m: type mismatch in function arguments: expected due to this, found signature defined here\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":116935,"byte_end":116939,"line_start":2697,"line_end":2697,"column_start":69,"column_end":73,"is_primary":true,"text":[{"text":"            Action::Camera(rect) => self.canvas.fit_to_rect_instant(rect),","highlight_start":69,"highlight_end":73}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":116915,"byte_end":116934,"line_start":2697,"line_end":2697,"column_start":49,"column_end":68,"is_primary":false,"text":[{"text":"            Action::Camera(rect) => self.canvas.fit_to_rect_instant(rect),","highlight_start":49,"highlight_end":68}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/view.rs","byte_start":13616,"byte_end":13629,"line_start":353,"line_end":353,"column_start":43,"column_end":56,"is_primary":false,"text":[{"text":"    pub fn fit_to_rect_instant(&mut self, content: Rect) {","highlight_start":43,"highlight_end":56}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/view.rs","byte_start":13585,"byte_end":13604,"line_start":353,"line_end":353,"column_start":12,"column_end":31,"is_primary":true,"text":[{"text":"    pub fn fit_to_rect_instant(&mut self, content: Rect) {","highlight_start":12,"highlight_end":31}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2697:69: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":121847,"byte_end":121853,"line_start":2798,"line_end":2798,"column_start":47,"column_end":53,"is_primary":true,"text":[{"text":"                d.paste_snapshot(&clip, into, target)","highlight_start":47,"highlight_end":53}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":121819,"byte_end":121833,"line_start":2798,"line_end":2798,"column_start":19,"column_end":33,"is_primary":false,"text":[{"text":"                d.paste_snapshot(&clip, into, target)","highlight_start":19,"highlight_end":33}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/clipboard.rs","byte_start":5355,"byte_end":5384,"line_start":126,"line_end":126,"column_start":9,"column_end":38,"is_primary":false,"text":[{"text":"        target_top_left: Option<Pos2>,","highlight_start":9,"highlight_end":38}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/clipboard.rs","byte_start":5257,"byte_end":5271,"line_start":122,"line_end":122,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn paste_snapshot(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2798:47: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":123833,"byte_end":123838,"line_start":2846,"line_end":2846,"column_start":27,"column_end":32,"is_primary":true,"text":[{"text":"                .focus_on(world, crate::canvas::view::Framing::Animated);","highlight_start":27,"highlight_end":32}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/app.rs","byte_start":123824,"byte_end":123832,"line_start":2846,"line_end":2846,"column_start":18,"column_end":26,"is_primary":false,"text":[{"text":"                .focus_on(world, crate::canvas::view::Framing::Animated);","highlight_start":18,"highlight_end":26}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/view.rs","byte_start":14745,"byte_end":14758,"line_start":378,"line_end":378,"column_start":32,"column_end":45,"is_primary":false,"text":[{"text":"    pub fn focus_on(&mut self, content: Rect, framing: Framing) {","highlight_start":32,"highlight_end":45}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/view.rs","byte_start":14725,"byte_end":14733,"line_start":378,"line_end":378,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":"    pub fn focus_on(&mut self, content: Rect, framing: Framing) {","highlight_start":12,"highlight_end":20}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:2846:27: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":143655,"byte_end":143698,"line_start":3277,"line_end":3277,"column_start":17,"column_end":60,"is_primary":true,"text":[{"text":"            at: self.canvas.screen_to_world_pos(carried.at),","highlight_start":17,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/app.rs:3277:17: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/painter.rs","byte_start":8818,"byte_end":8853,"line_start":228,"line_end":228,"column_start":9,"column_end":44,"is_primary":true,"text":[{"text":"        self.palette.resolve(swatch.into())","highlight_start":9,"highlight_end":44}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/painter.rs","byte_start":8800,"byte_end":8807,"line_start":227,"line_end":227,"column_start":51,"column_end":58,"is_primary":false,"text":[{"text":"    fn color(&self, swatch: impl Into<Swatch>) -> Color32 {","highlight_start":51,"highlight_end":58}],"label":"expected `Color32` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/canvas/painter.rs:228:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":4776,"byte_end":4795,"line_start":113,"line_end":113,"column_start":36,"column_end":55,"is_primary":true,"text":[{"text":"        Stroke::new(s.width.get(), self.color(s.color))","highlight_start":36,"highlight_end":55}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":4749,"byte_end":4760,"line_start":113,"line_end":113,"column_start":9,"column_end":20,"is_primary":false,"text":[{"text":"        Stroke::new(s.width.get(), self.color(s.color))","highlight_start":9,"highlight_end":20}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Stroke::new`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/epaint-0.36.1/src/stroke.rs","byte_start":620,"byte_end":633,"line_start":25,"line_end":25,"column_start":40,"column_end":53,"is_primary":true,"text":[{"text":"    pub fn new(width: f32, color: impl Into<Color32>) -> Self {","highlight_start":40,"highlight_end":53}],"label":"required by this bound in `Stroke::new`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:113:36: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"arguments to this method are incorrect","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":6139,"byte_end":6151,"line_start":151,"line_end":151,"column_start":27,"column_end":39,"is_primary":false,"text":[{"text":"            .layout(text, font.clone(), Color::PLACEHOLDER, max_width.get())","highlight_start":27,"highlight_end":39}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":6153,"byte_end":6171,"line_start":151,"line_end":151,"column_start":41,"column_end":59,"is_primary":false,"text":[{"text":"            .layout(text, font.clone(), Color::PLACEHOLDER, max_width.get())","highlight_start":41,"highlight_end":59}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":6126,"byte_end":6132,"line_start":151,"line_end":151,"column_start":14,"column_end":20,"is_primary":true,"text":[{"text":"            .layout(text, font.clone(), Color::PLACEHOLDER, max_width.get())","highlight_start":14,"highlight_end":20}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/epaint-0.36.1/src/text/fonts.rs","byte_start":30080,"byte_end":30086,"line_start":922,"line_end":922,"column_start":12,"column_end":18,"is_primary":true,"text":[{"text":"    pub fn layout(","highlight_start":12,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:151:14: \u001b[1m\u001b[91merror[E0308]\u001b[0m: arguments to this method are incorrect\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":7011,"byte_end":7024,"line_start":172,"line_end":172,"column_start":44,"column_end":57,"is_primary":true,"text":[{"text":"        let rect = anchor.anchor_size(pos, galley.size());","highlight_start":44,"highlight_end":57}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":6994,"byte_end":7005,"line_start":172,"line_end":172,"column_start":27,"column_end":38,"is_primary":false,"text":[{"text":"        let rect = anchor.anchor_size(pos, galley.size());","highlight_start":27,"highlight_end":38}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/align.rs","byte_start":1294,"byte_end":1305,"line_start":43,"line_end":43,"column_start":12,"column_end":23,"is_primary":true,"text":[{"text":"    pub fn anchor_size(self, pos: Pos2, size: Vec2) -> Rect {","highlight_start":12,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:172:44: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":7524,"byte_end":7541,"line_start":182,"line_end":182,"column_start":41,"column_end":58,"is_primary":true,"text":[{"text":"                        pen: rect.min + row.pos.to_vec2() + glyph.pos.to_vec2(),","highlight_start":41,"highlight_end":58}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:182:41: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":7544,"byte_end":7563,"line_start":182,"line_end":182,"column_start":61,"column_end":80,"is_primary":true,"text":[{"text":"                        pen: rect.min + row.pos.to_vec2() + glyph.pos.to_vec2(),","highlight_start":61,"highlight_end":80}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:182:61: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":17077,"byte_end":17152,"line_start":458,"line_end":459,"column_start":9,"column_end":20,"is_primary":true,"text":[{"text":"        self.layout(text.to_string(), font, WorldPx::UNBOUNDED)","highlight_start":9,"highlight_end":64},{"text":"            .size()","highlight_start":1,"highlight_end":20}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":17062,"byte_end":17066,"line_start":457,"line_end":457,"column_start":62,"column_end":66,"is_primary":false,"text":[{"text":"    fn text_size(&self, text: impl ToString, font: &Font) -> Vec2 {","highlight_start":62,"highlight_end":66}],"label":"expected `blockworx_geom::Vec2` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:458:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":17264,"byte_end":17317,"line_start":463,"line_end":463,"column_start":9,"column_end":62,"is_primary":true,"text":[{"text":"        self.layout(text.to_string(), font, max_width).size()","highlight_start":9,"highlight_end":62}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":17249,"byte_end":17253,"line_start":462,"line_end":462,"column_start":90,"column_end":94,"is_primary":false,"text":[{"text":"    fn text_size_wrapped(&self, text: impl ToString, font: &Font, max_width: WorldPx) -> Vec2 {","highlight_start":90,"highlight_end":94}],"label":"expected `blockworx_geom::Vec2` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:463:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":18362,"byte_end":18416,"line_start":492,"line_end":492,"column_start":9,"column_end":63,"is_primary":true,"text":[{"text":"        crate::canvas::image::image_intrinsic_size(image).ok()","highlight_start":9,"highlight_end":63}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":18339,"byte_end":18351,"line_start":491,"line_end":491,"column_start":54,"column_end":66,"is_primary":false,"text":[{"text":"    fn image_intrinsic_size(&self, image: &Asset) -> Option<Vec2> {","highlight_start":54,"highlight_end":66}],"label":"expected `std::option::Option<blockworx_geom::Vec2>` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:492:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/canvas/svg.rs","byte_start":21695,"byte_end":21702,"line_start":596,"line_end":596,"column_start":37,"column_end":44,"is_primary":true,"text":[{"text":"    node.assign(\"stroke\", color_hex(s.color));","highlight_start":37,"highlight_end":44}],"label":"expected `Color`, found `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":21685,"byte_end":21694,"line_start":596,"line_end":596,"column_start":27,"column_end":36,"is_primary":false,"text":[{"text":"    node.assign(\"stroke\", color_hex(s.color));","highlight_start":27,"highlight_end":36}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/svg.rs","byte_start":20946,"byte_end":20954,"line_start":572,"line_end":572,"column_start":14,"column_end":22,"is_primary":false,"text":[{"text":"fn color_hex(c: Color) -> String {","highlight_start":14,"highlight_end":22}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/svg.rs","byte_start":20936,"byte_end":20945,"line_start":572,"line_end":572,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn color_hex(c: Color) -> String {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/canvas/svg.rs:596:37: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color`, found `Color32`\n"}
{"$message_type":"diagnostic","message":"arguments to this method are incorrect","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/export/pdf.rs","byte_start":22715,"byte_end":22732,"line_start":651,"line_end":651,"column_start":13,"column_end":30,"is_primary":false,"text":[{"text":"            self.font.clone(),","highlight_start":13,"highlight_end":30}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/export/pdf.rs","byte_start":22746,"byte_end":22764,"line_start":652,"line_end":652,"column_start":13,"column_end":31,"is_primary":false,"text":[{"text":"            Color::PLACEHOLDER,","highlight_start":13,"highlight_end":31}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/export/pdf.rs","byte_start":22658,"byte_end":22672,"line_start":649,"line_end":649,"column_start":47,"column_end":61,"is_primary":true,"text":[{"text":"        self.fonts.with_pixels_per_point(1.0).layout_no_wrap(","highlight_start":47,"highlight_end":61}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/epaint-0.36.1/src/text/fonts.rs","byte_start":30479,"byte_end":30493,"line_start":937,"line_end":937,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn layout_no_wrap(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/export/pdf.rs:649:47: \u001b[1m\u001b[91merror[E0308]\u001b[0m: arguments to this method are incorrect\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/shell/toast.rs","byte_start":3088,"byte_end":3114,"line_start":77,"line_end":77,"column_start":19,"column_end":45,"is_primary":true,"text":[{"text":"            .fill(theme.resolve(Role::Toast))","highlight_start":19,"highlight_end":45}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/toast.rs","byte_start":3083,"byte_end":3087,"line_start":77,"line_end":77,"column_start":14,"column_end":18,"is_primary":false,"text":[{"text":"            .fill(theme.resolve(Role::Toast))","highlight_start":14,"highlight_end":18}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/containers/frame.rs","byte_start":8827,"byte_end":8831,"line_start":258,"line_end":258,"column_start":12,"column_end":16,"is_primary":true,"text":[{"text":"    pub fn fill(mut self, fill: Color32) -> Self {","highlight_start":12,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/shell/toast.rs:77:19: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/shell/toast.rs","byte_start":3271,"byte_end":3274,"line_start":80,"line_end":80,"column_start":67,"column_end":70,"is_primary":true,"text":[{"text":"                ui.label(egui::RichText::new(&message.said).color(ink));","highlight_start":67,"highlight_end":70}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/toast.rs","byte_start":3265,"byte_end":3270,"line_start":80,"line_end":80,"column_start":61,"column_end":66,"is_primary":false,"text":[{"text":"                ui.label(egui::RichText::new(&message.said).color(ink));","highlight_start":61,"highlight_end":66}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::RichText::color`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/widget_text.rs","byte_start":8252,"byte_end":8265,"line_start":320,"line_end":320,"column_start":40,"column_end":53,"is_primary":true,"text":[{"text":"    pub fn color(mut self, color: impl Into<Color32>) -> Self {","highlight_start":40,"highlight_end":53}],"label":"required by this bound in `RichText::color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/shell/toast.rs:80:67: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/shell/top_bar.rs","byte_start":6309,"byte_end":6402,"line_start":161,"line_end":163,"column_start":9,"column_end":48,"is_primary":true,"text":[{"text":"        theme","highlight_start":9,"highlight_end":14},{"text":"            .resolve(Role::ViewingTint)","highlight_start":1,"highlight_end":40},{"text":"            .gamma_multiply(f32::from(through)),","highlight_start":1,"highlight_end":48}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/top_bar.rs","byte_start":6289,"byte_end":6299,"line_start":160,"line_end":160,"column_start":5,"column_end":15,"is_primary":false,"text":[{"text":"    Tint::Over(","highlight_start":5,"highlight_end":15}],"label":"arguments to this enum variant are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"tuple variant defined here","code":null,"level":"note","spans":[{"file_name":"src/shell/glass.rs","byte_start":15758,"byte_end":15762,"line_start":367,"line_end":367,"column_start":5,"column_end":9,"is_primary":true,"text":[{"text":"    Over(egui::Color32),","highlight_start":5,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/shell/top_bar.rs:161:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/shell/top_bar.rs","byte_start":7458,"byte_end":7477,"line_start":193,"line_end":193,"column_start":55,"column_end":74,"is_primary":true,"text":[{"text":"        .circle_filled(rect.center(), DOT_SIZE * 0.5, theme.resolve(role));","highlight_start":55,"highlight_end":74}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/top_bar.rs","byte_start":7413,"byte_end":7426,"line_start":193,"line_end":193,"column_start":10,"column_end":23,"is_primary":false,"text":[{"text":"        .circle_filled(rect.center(), DOT_SIZE * 0.5, theme.resolve(role));","highlight_start":10,"highlight_end":23}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Painter::circle_filled`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":11575,"byte_end":11588,"line_start":356,"line_end":356,"column_start":12,"column_end":25,"is_primary":false,"text":[{"text":"    pub fn circle_filled(","highlight_start":12,"highlight_end":25}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":11673,"byte_end":11686,"line_start":360,"line_end":360,"column_start":26,"column_end":39,"is_primary":true,"text":[{"text":"        fill_color: impl Into<Color32>,","highlight_start":26,"highlight_end":39}],"label":"required by this bound in `Painter::circle_filled`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/shell/top_bar.rs:193:55: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/shell/top_bar.rs","byte_start":26913,"byte_end":26916,"line_start":706,"line_end":706,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"    ui.visuals_mut().widgets.inactive.fg_stroke.color = ink;","highlight_start":57,"highlight_end":60}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/top_bar.rs","byte_start":26861,"byte_end":26910,"line_start":706,"line_end":706,"column_start":5,"column_end":54,"is_primary":false,"text":[{"text":"    ui.visuals_mut().widgets.inactive.fg_stroke.color = ink;","highlight_start":5,"highlight_end":54}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/shell/top_bar.rs:706:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/shell/top_bar.rs","byte_start":27003,"byte_end":27006,"line_start":709,"line_end":709,"column_start":20,"column_end":23,"is_primary":true,"text":[{"text":"            .color(ink)","highlight_start":20,"highlight_end":23}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/top_bar.rs","byte_start":26997,"byte_end":27002,"line_start":709,"line_end":709,"column_start":14,"column_end":19,"is_primary":false,"text":[{"text":"            .color(ink)","highlight_start":14,"highlight_end":19}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::RichText::color`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/widget_text.rs","byte_start":8252,"byte_end":8265,"line_start":320,"line_end":320,"column_start":40,"column_end":53,"is_primary":true,"text":[{"text":"    pub fn color(mut self, color: impl Into<Color32>) -> Self {","highlight_start":40,"highlight_end":53}],"label":"required by this bound in `RichText::color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/shell/top_bar.rs:709:20: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"arguments to this function are incorrect","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/shell/top_bar.rs","byte_start":27185,"byte_end":27216,"line_start":718,"line_end":718,"column_start":9,"column_end":40,"is_primary":false,"text":[{"text":"        theme.resolve(Role::ViewingInk),","highlight_start":9,"highlight_end":40}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/top_bar.rs","byte_start":27226,"byte_end":27263,"line_start":719,"line_end":719,"column_start":9,"column_end":46,"is_primary":false,"text":[{"text":"        theme.resolve(Role::ViewingReturnInk),","highlight_start":9,"highlight_end":46}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/top_bar.rs","byte_start":27130,"byte_end":27147,"line_start":715,"line_end":715,"column_start":8,"column_end":25,"is_primary":true,"text":[{"text":"    if glass::tap_filled(","highlight_start":8,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/shell/glass.rs","byte_start":23258,"byte_end":23277,"line_start":575,"line_end":575,"column_start":5,"column_end":24,"is_primary":false,"text":[{"text":"    fill: egui::Color32,","highlight_start":5,"highlight_end":24}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/glass.rs","byte_start":23283,"byte_end":23301,"line_start":576,"line_end":576,"column_start":5,"column_end":23,"is_primary":false,"text":[{"text":"    ink: egui::Color32,","highlight_start":5,"highlight_end":23}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/shell/glass.rs","byte_start":23203,"byte_end":23213,"line_start":572,"line_end":572,"column_start":8,"column_end":18,"is_primary":true,"text":[{"text":"pub fn tap_filled(","highlight_start":8,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/shell/top_bar.rs:715:8: \u001b[1m\u001b[91merror[E0308]\u001b[0m: arguments to this function are incorrect\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/theme/role_picker.rs","byte_start":3449,"byte_end":3468,"line_start":80,"line_end":80,"column_start":54,"column_end":73,"is_primary":true,"text":[{"text":"                            p.rect_filled(rect, 4.0, theme.resolve(role));","highlight_start":54,"highlight_end":73}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/role_picker.rs","byte_start":3426,"byte_end":3437,"line_start":80,"line_end":80,"column_start":31,"column_end":42,"is_primary":false,"text":[{"text":"                            p.rect_filled(rect, 4.0, theme.resolve(role));","highlight_start":31,"highlight_end":42}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Painter::rect_filled`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":12606,"byte_end":12617,"line_start":397,"line_end":397,"column_start":12,"column_end":23,"is_primary":false,"text":[{"text":"    pub fn rect_filled(","highlight_start":12,"highlight_end":23}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":12727,"byte_end":12740,"line_start":401,"line_end":401,"column_start":26,"column_end":39,"is_primary":true,"text":[{"text":"        fill_color: impl Into<Color32>,","highlight_start":26,"highlight_end":39}],"label":"required by this bound in `Painter::rect_filled`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/role_picker.rs:80:54: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/theme/role_picker.rs","byte_start":3776,"byte_end":3779,"line_start":86,"line_end":86,"column_start":69,"column_end":72,"is_primary":true,"text":[{"text":"                            p.rect_stroke(rect, 4.0, Stroke::new(w, col), StrokeKind::Inside);","highlight_start":69,"highlight_end":72}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/role_picker.rs","byte_start":3761,"byte_end":3772,"line_start":86,"line_end":86,"column_start":54,"column_end":65,"is_primary":false,"text":[{"text":"                            p.rect_stroke(rect, 4.0, Stroke::new(w, col), StrokeKind::Inside);","highlight_start":54,"highlight_end":65}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Stroke::new`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/epaint-0.36.1/src/stroke.rs","byte_start":620,"byte_end":633,"line_start":25,"line_end":25,"column_start":40,"column_end":53,"is_primary":true,"text":[{"text":"    pub fn new(width: f32, color: impl Into<Color32>) -> Self {","highlight_start":40,"highlight_end":53}],"label":"required by this bound in `Stroke::new`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/role_picker.rs:86:69: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/theme/style.rs","byte_start":8262,"byte_end":8288,"line_start":222,"line_end":222,"column_start":9,"column_end":35,"is_primary":true,"text":[{"text":"        self.inner.pointer_world()","highlight_start":9,"highlight_end":35}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/style.rs","byte_start":8239,"byte_end":8251,"line_start":221,"line_end":221,"column_start":36,"column_end":48,"is_primary":false,"text":[{"text":"    pub fn pointer_world(&self) -> Option<Pos2> {","highlight_start":36,"highlight_end":48}],"label":"expected `std::option::Option<blockworx_geom::Pos2>` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/style.rs:222:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/theme/style.rs","byte_start":8536,"byte_end":8540,"line_start":228,"line_end":228,"column_start":31,"column_end":35,"is_primary":true,"text":[{"text":"        self.inner.remap_rect(rect)","highlight_start":31,"highlight_end":35}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/style.rs","byte_start":8525,"byte_end":8535,"line_start":228,"line_end":228,"column_start":20,"column_end":30,"is_primary":false,"text":[{"text":"        self.inner.remap_rect(rect)","highlight_start":20,"highlight_end":30}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/painter.rs","byte_start":8006,"byte_end":8016,"line_start":210,"line_end":210,"column_start":30,"column_end":40,"is_primary":false,"text":[{"text":"    pub fn remap_rect(&self, rect: Rect) -> Rect {","highlight_start":30,"highlight_end":40}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/painter.rs","byte_start":7988,"byte_end":7998,"line_start":210,"line_end":210,"column_start":12,"column_end":22,"is_primary":true,"text":[{"text":"    pub fn remap_rect(&self, rect: Rect) -> Rect {","highlight_start":12,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/style.rs:228:31: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/theme/style.rs","byte_start":8514,"byte_end":8541,"line_start":228,"line_end":228,"column_start":9,"column_end":36,"is_primary":true,"text":[{"text":"        self.inner.remap_rect(rect)","highlight_start":9,"highlight_end":36}],"label":"expected `blockworx_geom::Rect`, found `egui::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/style.rs","byte_start":8499,"byte_end":8503,"line_start":227,"line_end":227,"column_start":45,"column_end":49,"is_primary":false,"text":[{"text":"    pub fn remap_rect(&self, rect: Rect) -> Rect {","highlight_start":45,"highlight_end":49}],"label":"expected `blockworx_geom::Rect` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Rect` and `blockworx_geom::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/style.rs:228:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Rect`, found `egui::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/theme/style.rs","byte_start":9093,"byte_end":9097,"line_start":248,"line_end":248,"column_start":26,"column_end":30,"is_primary":true,"text":[{"text":"        self.inner.image(rect, handle);","highlight_start":26,"highlight_end":30}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme/style.rs","byte_start":9087,"byte_end":9092,"line_start":248,"line_end":248,"column_start":20,"column_end":25,"is_primary":false,"text":[{"text":"        self.inner.image(rect, handle);","highlight_start":20,"highlight_end":25}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/canvas/painter.rs","byte_start":15723,"byte_end":15733,"line_start":372,"line_end":372,"column_start":25,"column_end":35,"is_primary":false,"text":[{"text":"    pub fn image(&self, rect: Rect, handle: &ImageHandle) {","highlight_start":25,"highlight_end":35}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/canvas/painter.rs","byte_start":15710,"byte_end":15715,"line_start":372,"line_end":372,"column_start":12,"column_end":17,"is_primary":true,"text":[{"text":"    pub fn image(&self, rect: Rect, handle: &ImageHandle) {","highlight_start":12,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme/style.rs:248:26: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/theme_editor.rs","byte_start":2322,"byte_end":2341,"line_start":55,"line_end":55,"column_start":32,"column_end":51,"is_primary":true,"text":[{"text":"                    swatch(ui, theme.resolve(role));","highlight_start":32,"highlight_end":51}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme_editor.rs","byte_start":2311,"byte_end":2317,"line_start":55,"line_end":55,"column_start":21,"column_end":27,"is_primary":false,"text":[{"text":"                    swatch(ui, theme.resolve(role));","highlight_start":21,"highlight_end":27}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/theme_editor.rs","byte_start":4457,"byte_end":4471,"line_start":102,"line_end":102,"column_start":30,"column_end":44,"is_primary":false,"text":[{"text":"fn swatch(ui: &mut egui::Ui, color: Color32) {","highlight_start":30,"highlight_end":44}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme_editor.rs","byte_start":4431,"byte_end":4437,"line_start":102,"line_end":102,"column_start":4,"column_end":10,"is_primary":true,"text":[{"text":"fn swatch(ui: &mut egui::Ui, color: Color32) {","highlight_start":4,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme_editor.rs:55:32: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/theme_editor.rs","byte_start":3062,"byte_end":3084,"line_start":69,"line_end":69,"column_start":48,"column_end":70,"is_primary":true,"text":[{"text":"                                    swatch(ui, theme.palette().get(b));","highlight_start":48,"highlight_end":70}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme_editor.rs","byte_start":3051,"byte_end":3057,"line_start":69,"line_end":69,"column_start":37,"column_end":43,"is_primary":false,"text":[{"text":"                                    swatch(ui, theme.palette().get(b));","highlight_start":37,"highlight_end":43}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/theme_editor.rs","byte_start":4457,"byte_end":4471,"line_start":102,"line_end":102,"column_start":30,"column_end":44,"is_primary":false,"text":[{"text":"fn swatch(ui: &mut egui::Ui, color: Color32) {","highlight_start":30,"highlight_end":44}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/theme_editor.rs","byte_start":4431,"byte_end":4437,"line_start":102,"line_end":102,"column_start":4,"column_end":10,"is_primary":true,"text":[{"text":"fn swatch(ui: &mut egui::Ui, color: Color32) {","highlight_start":4,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/theme_editor.rs:69:48: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/tools/history_panel.rs","byte_start":14211,"byte_end":14241,"line_start":377,"line_end":377,"column_start":53,"column_end":83,"is_primary":true,"text":[{"text":"        .circle_filled(rect.center(), AVATAR / 2.0, theme.resolve(avatar_role(by)));","highlight_start":53,"highlight_end":83}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/history_panel.rs","byte_start":14168,"byte_end":14181,"line_start":377,"line_end":377,"column_start":10,"column_end":23,"is_primary":false,"text":[{"text":"        .circle_filled(rect.center(), AVATAR / 2.0, theme.resolve(avatar_role(by)));","highlight_start":10,"highlight_end":23}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Painter::circle_filled`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":11575,"byte_end":11588,"line_start":356,"line_end":356,"column_start":12,"column_end":25,"is_primary":false,"text":[{"text":"    pub fn circle_filled(","highlight_start":12,"highlight_end":25}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":11673,"byte_end":11686,"line_start":360,"line_end":360,"column_start":26,"column_end":39,"is_primary":true,"text":[{"text":"        fill_color: impl Into<Color32>,","highlight_start":26,"highlight_end":39}],"label":"required by this bound in `Painter::circle_filled`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/history_panel.rs:377:53: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/history_panel.rs","byte_start":14378,"byte_end":14415,"line_start":383,"line_end":383,"column_start":9,"column_end":46,"is_primary":true,"text":[{"text":"        theme.resolve(Role::AuthorAvatarText),","highlight_start":9,"highlight_end":46}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/history_panel.rs","byte_start":14261,"byte_end":14265,"line_start":378,"line_end":378,"column_start":18,"column_end":22,"is_primary":false,"text":[{"text":"    ui.painter().text(","highlight_start":18,"highlight_end":22}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":15097,"byte_end":15101,"line_start":469,"line_end":469,"column_start":12,"column_end":16,"is_primary":true,"text":[{"text":"    pub fn text(","highlight_start":12,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/history_panel.rs:383:9: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/tools/history_panel.rs","byte_start":17883,"byte_end":17916,"line_start":486,"line_end":486,"column_start":24,"column_end":57,"is_primary":true,"text":[{"text":"                .color(theme.resolve(Role::TagBadgeText)),","highlight_start":24,"highlight_end":57}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/history_panel.rs","byte_start":17877,"byte_end":17882,"line_start":486,"line_end":486,"column_start":18,"column_end":23,"is_primary":false,"text":[{"text":"                .color(theme.resolve(Role::TagBadgeText)),","highlight_start":18,"highlight_end":23}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::RichText::color`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/widget_text.rs","byte_start":8252,"byte_end":8265,"line_start":320,"line_end":320,"column_start":40,"column_end":53,"is_primary":true,"text":[{"text":"    pub fn color(mut self, color: impl Into<Color32>) -> Self {","highlight_start":40,"highlight_end":53}],"label":"required by this bound in `RichText::color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/history_panel.rs:486:24: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/tools/history_panel.rs","byte_start":17943,"byte_end":17972,"line_start":488,"line_end":488,"column_start":15,"column_end":44,"is_primary":true,"text":[{"text":"        .fill(theme.resolve(Role::TagBadge))","highlight_start":15,"highlight_end":44}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/history_panel.rs","byte_start":17938,"byte_end":17942,"line_start":488,"line_end":488,"column_start":10,"column_end":14,"is_primary":false,"text":[{"text":"        .fill(theme.resolve(Role::TagBadge))","highlight_start":10,"highlight_end":14}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Button::<'a>::fill`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/widgets/button.rs","byte_start":4788,"byte_end":4801,"line_start":143,"line_end":143,"column_start":38,"column_end":51,"is_primary":true,"text":[{"text":"    pub fn fill(mut self, fill: impl Into<Color32>) -> Self {","highlight_start":38,"highlight_end":51}],"label":"required by this bound in `Button::<'a>::fill`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/history_panel.rs:488:15: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/overlay.rs","byte_start":3706,"byte_end":3757,"line_start":94,"line_end":94,"column_start":5,"column_end":56,"is_primary":true,"text":[{"text":"    theme.resolve(accent_display_role(target, current))","highlight_start":5,"highlight_end":56}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/overlay.rs","byte_start":2898,"byte_end":2911,"line_start":76,"line_end":76,"column_start":78,"column_end":91,"is_primary":false,"text":[{"text":"fn accent_swatch_color(data: &Drawing, target: RoleTarget, theme: &Theme) -> egui::Color32 {","highlight_start":78,"highlight_end":91}],"label":"expected `Color32` because of return type","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/overlay.rs:94:5: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"arguments to this function are incorrect","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/palette.rs","byte_start":2367,"byte_end":2394,"line_start":62,"line_end":62,"column_start":9,"column_end":36,"is_primary":false,"text":[{"text":"        crate::grid::grid_pos(x, y),","highlight_start":9,"highlight_end":36}],"label":"expected `egui::Pos2`, found `blockworx_geom::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/palette.rs","byte_start":2404,"byte_end":2441,"line_start":63,"line_end":63,"column_start":9,"column_end":46,"is_primary":false,"text":[{"text":"        crate::grid::grid_pos(w, h).to_vec2(),","highlight_start":9,"highlight_end":46}],"label":"expected `egui::Vec2`, found `blockworx_geom::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/palette.rs","byte_start":2332,"byte_end":2357,"line_start":61,"line_end":61,"column_start":10,"column_end":35,"is_primary":true,"text":[{"text":"    Some(egui::Rect::from_min_size(","highlight_start":10,"highlight_end":35}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Pos2` and `egui::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` and `egui::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":2734,"byte_end":2747,"line_start":79,"line_end":79,"column_start":12,"column_end":25,"is_primary":true,"text":[{"text":"    pub fn from_min_size(min: Pos2, size: Vec2) -> Self {","highlight_start":12,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/palette.rs:61:10: \u001b[1m\u001b[91merror[E0308]\u001b[0m: arguments to this function are incorrect\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/palette.rs","byte_start":11374,"byte_end":11378,"line_start":286,"line_end":286,"column_start":60,"column_end":64,"is_primary":true,"text":[{"text":"                RowId::Camera(rect) => Some(Action::Camera(rect)),","highlight_start":60,"highlight_end":64}],"label":"expected `blockworx_geom::Rect`, found `egui::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/palette.rs","byte_start":11359,"byte_end":11373,"line_start":286,"line_end":286,"column_start":45,"column_end":59,"is_primary":false,"text":[{"text":"                RowId::Camera(rect) => Some(Action::Camera(rect)),","highlight_start":45,"highlight_end":59}],"label":"arguments to this enum variant are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Rect` and `blockworx_geom::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"tuple variant defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/tool.rs","byte_start":11326,"byte_end":11332,"line_start":288,"line_end":288,"column_start":5,"column_end":11,"is_primary":true,"text":[{"text":"    Camera(Rect),","highlight_start":5,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/palette.rs:286:60: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Rect`, found `egui::Rect`\n"}
{"$message_type":"diagnostic","message":"arguments to this function are incorrect","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_port.rs","byte_start":1930,"byte_end":1933,"line_start":55,"line_end":55,"column_start":77,"column_end":80,"is_primary":false,"text":[{"text":"                Some(Event::HoverAt(pos)) => preview_port(painter, port_box(pos, pos)),","highlight_start":77,"highlight_end":80}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":1935,"byte_end":1938,"line_start":55,"line_end":55,"column_start":82,"column_end":85,"is_primary":false,"text":[{"text":"                Some(Event::HoverAt(pos)) => preview_port(painter, port_box(pos, pos)),","highlight_start":82,"highlight_end":85}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":1921,"byte_end":1929,"line_start":55,"line_end":55,"column_start":68,"column_end":76,"is_primary":true,"text":[{"text":"                Some(Event::HoverAt(pos)) => preview_port(painter, port_box(pos, pos)),","highlight_start":68,"highlight_end":76}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_port.rs","byte_start":2815,"byte_end":2822,"line_start":76,"line_end":76,"column_start":13,"column_end":20,"is_primary":false,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":13,"highlight_end":20}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":2824,"byte_end":2831,"line_start":76,"line_end":76,"column_start":22,"column_end":29,"is_primary":false,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":22,"highlight_end":29}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":2806,"byte_end":2814,"line_start":76,"line_end":76,"column_start":4,"column_end":12,"is_primary":true,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":4,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_port.rs:55:68: \u001b[1m\u001b[91merror[E0308]\u001b[0m: arguments to this function are incorrect\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_port.rs","byte_start":2029,"byte_end":2032,"line_start":56,"line_end":56,"column_start":88,"column_end":91,"is_primary":true,"text":[{"text":"                Some(Event::DragStarted { pos }) => *self = AddPort::Dragging { start: pos },","highlight_start":88,"highlight_end":91}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_port.rs:56:88: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_port.rs","byte_start":2293,"byte_end":2296,"line_start":62,"line_end":62,"column_start":59,"column_end":62,"is_primary":true,"text":[{"text":"                    preview_port(painter, port_box(start, pos));","highlight_start":59,"highlight_end":62}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":2277,"byte_end":2285,"line_start":62,"line_end":62,"column_start":43,"column_end":51,"is_primary":false,"text":[{"text":"                    preview_port(painter, port_box(start, pos));","highlight_start":43,"highlight_end":51}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_port.rs","byte_start":2824,"byte_end":2831,"line_start":76,"line_end":76,"column_start":22,"column_end":29,"is_primary":false,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":22,"highlight_end":29}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":2806,"byte_end":2814,"line_start":76,"line_end":76,"column_start":4,"column_end":12,"is_primary":true,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":4,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_port.rs:62:59: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_port.rs","byte_start":2494,"byte_end":2497,"line_start":65,"line_end":65,"column_start":67,"column_end":70,"is_primary":true,"text":[{"text":"                    return Some(create_port(data, port_box(start, pos)));","highlight_start":67,"highlight_end":70}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":2478,"byte_end":2486,"line_start":65,"line_end":65,"column_start":51,"column_end":59,"is_primary":false,"text":[{"text":"                    return Some(create_port(data, port_box(start, pos)));","highlight_start":51,"highlight_end":59}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_port.rs","byte_start":2824,"byte_end":2831,"line_start":76,"line_end":76,"column_start":22,"column_end":29,"is_primary":false,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":22,"highlight_end":29}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_port.rs","byte_start":2806,"byte_end":2814,"line_start":76,"line_end":76,"column_start":4,"column_end":12,"is_primary":true,"text":[{"text":"fn port_box(a: Pos2, b: Pos2) -> Rect {","highlight_start":4,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_port.rs:65:67: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":1266,"byte_end":1269,"line_start":46,"line_end":46,"column_start":55,"column_end":58,"is_primary":true,"text":[{"text":"                    if let Some(id) = route_hit(data, pos) {","highlight_start":55,"highlight_end":58}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":1250,"byte_end":1259,"line_start":46,"line_end":46,"column_start":39,"column_end":48,"is_primary":false,"text":[{"text":"                    if let Some(id) = route_hit(data, pos) {","highlight_start":39,"highlight_end":48}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":5146,"byte_end":5155,"line_start":151,"line_end":151,"column_start":30,"column_end":39,"is_primary":false,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":30,"highlight_end":39}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":5120,"byte_end":5129,"line_start":151,"line_end":151,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_route_label.rs:46:55: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":1698,"byte_end":1701,"line_start":55,"line_end":55,"column_start":55,"column_end":58,"is_primary":true,"text":[{"text":"                    if let Some(id) = route_hit(data, pos) {","highlight_start":55,"highlight_end":58}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":1682,"byte_end":1691,"line_start":55,"line_end":55,"column_start":39,"column_end":48,"is_primary":false,"text":[{"text":"                    if let Some(id) = route_hit(data, pos) {","highlight_start":39,"highlight_end":48}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":5146,"byte_end":5155,"line_start":151,"line_end":151,"column_start":30,"column_end":39,"is_primary":false,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":30,"highlight_end":39}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":5120,"byte_end":5129,"line_start":151,"line_end":151,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_route_label.rs:55:55: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":1763,"byte_end":1766,"line_start":56,"line_end":56,"column_start":59,"column_end":62,"is_primary":true,"text":[{"text":"                        action = Some(add_label(data, id, pos, painter));","highlight_start":59,"highlight_end":62}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":1743,"byte_end":1752,"line_start":56,"line_end":56,"column_start":39,"column_end":48,"is_primary":false,"text":[{"text":"                        action = Some(add_label(data, id, pos, painter));","highlight_start":39,"highlight_end":48}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":4296,"byte_end":4305,"line_start":121,"line_end":121,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":4234,"byte_end":4243,"line_start":118,"line_end":118,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn add_label(","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_route_label.rs:56:59: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":2326,"byte_end":2329,"line_start":70,"line_end":70,"column_start":72,"column_end":75,"is_primary":true,"text":[{"text":"                    Some(Event::HoverAt(pos)) => match route_hit(data, pos) {","highlight_start":72,"highlight_end":75}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":2310,"byte_end":2319,"line_start":70,"line_end":70,"column_start":56,"column_end":65,"is_primary":false,"text":[{"text":"                    Some(Event::HoverAt(pos)) => match route_hit(data, pos) {","highlight_start":56,"highlight_end":65}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":5146,"byte_end":5155,"line_start":151,"line_end":151,"column_start":30,"column_end":39,"is_primary":false,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":30,"highlight_end":39}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":5120,"byte_end":5129,"line_start":151,"line_end":151,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_route_label.rs:70:72: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":2593,"byte_end":2596,"line_start":75,"line_end":75,"column_start":54,"column_end":57,"is_primary":true,"text":[{"text":"                        let hit_id = route_hit(data, pos).unwrap_or(route_id);","highlight_start":54,"highlight_end":57}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":2577,"byte_end":2586,"line_start":75,"line_end":75,"column_start":38,"column_end":47,"is_primary":false,"text":[{"text":"                        let hit_id = route_hit(data, pos).unwrap_or(route_id);","highlight_start":38,"highlight_end":47}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":5146,"byte_end":5155,"line_start":151,"line_end":151,"column_start":30,"column_end":39,"is_primary":false,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":30,"highlight_end":39}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":5120,"byte_end":5129,"line_start":151,"line_end":151,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn route_hit(data: &Drawing, pos: Pos2) -> Option<RouteId> {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_route_label.rs:75:54: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":2681,"byte_end":2684,"line_start":76,"line_end":76,"column_start":63,"column_end":66,"is_primary":true,"text":[{"text":"                        action = Some(add_label(data, hit_id, pos, painter));","highlight_start":63,"highlight_end":66}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":2657,"byte_end":2666,"line_start":76,"line_end":76,"column_start":39,"column_end":48,"is_primary":false,"text":[{"text":"                        action = Some(add_label(data, hit_id, pos, painter));","highlight_start":39,"highlight_end":48}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/add_route_label.rs","byte_start":4296,"byte_end":4305,"line_start":121,"line_end":121,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_route_label.rs","byte_start":4234,"byte_end":4243,"line_start":118,"line_end":118,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn add_label(","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_route_label.rs:76:63: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_text.rs","byte_start":1450,"byte_end":1453,"line_start":44,"line_end":44,"column_start":56,"column_end":59,"is_primary":true,"text":[{"text":"                    *self = AddText::Dragging { start: pos };","highlight_start":56,"highlight_end":59}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_text.rs:44:56: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_text.rs","byte_start":1733,"byte_end":1736,"line_start":51,"line_end":51,"column_start":51,"column_end":54,"is_primary":true,"text":[{"text":"                        Rect::from_two_pos(start, pos),","highlight_start":51,"highlight_end":54}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_text.rs","byte_start":1707,"byte_end":1725,"line_start":51,"line_end":51,"column_start":25,"column_end":43,"is_primary":false,"text":[{"text":"                        Rect::from_two_pos(start, pos),","highlight_start":25,"highlight_end":43}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":1919,"byte_end":1931,"line_start":66,"line_end":66,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn from_two_pos(a: Pos2, b: Pos2) -> Self {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_text.rs:51:51: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/add_text.rs","byte_start":2105,"byte_end":2108,"line_start":58,"line_end":58,"column_start":74,"column_end":77,"is_primary":true,"text":[{"text":"                    let id = data.add_text_box(Rect::from_two_pos(start, pos).min);","highlight_start":74,"highlight_end":77}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/add_text.rs","byte_start":2079,"byte_end":2097,"line_start":58,"line_end":58,"column_start":48,"column_end":66,"is_primary":false,"text":[{"text":"                    let id = data.add_text_box(Rect::from_two_pos(start, pos).min);","highlight_start":48,"highlight_end":66}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":1919,"byte_end":1931,"line_start":66,"line_end":66,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn from_two_pos(a: Pos2, b: Pos2) -> Self {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/add_text.rs:58:74: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":3371,"byte_end":3374,"line_start":104,"line_end":104,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"                    if let Some(id) = data.route_at_pos(pos) {","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":3358,"byte_end":3370,"line_start":104,"line_end":104,"column_start":44,"column_end":56,"is_primary":false,"text":[{"text":"                    if let Some(id) = data.route_at_pos(pos) {","highlight_start":44,"highlight_end":56}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":11229,"byte_end":11238,"line_start":289,"line_end":289,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn route_at_pos(&self, pos: Pos2) -> Option<RouteId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":11209,"byte_end":11221,"line_start":289,"line_end":289,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn route_at_pos(&self, pos: Pos2) -> Option<RouteId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:104:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":3594,"byte_end":3597,"line_start":108,"line_end":108,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"                    && let Some(id) = data.route_at_pos(pos)","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":3581,"byte_end":3593,"line_start":108,"line_end":108,"column_start":44,"column_end":56,"is_primary":false,"text":[{"text":"                    && let Some(id) = data.route_at_pos(pos)","highlight_start":44,"highlight_end":56}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":11229,"byte_end":11238,"line_start":289,"line_end":289,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn route_at_pos(&self, pos: Pos2) -> Option<RouteId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":11209,"byte_end":11221,"line_start":289,"line_end":289,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn route_at_pos(&self, pos: Pos2) -> Option<RouteId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:108:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":3679,"byte_end":3682,"line_start":110,"line_end":110,"column_start":63,"column_end":66,"is_primary":true,"text":[{"text":"                    *self = EditRoute::Selected { id, anchor: pos };","highlight_start":63,"highlight_end":66}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:110:63: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":3907,"byte_end":3910,"line_start":117,"line_end":117,"column_start":45,"column_end":48,"is_primary":true,"text":[{"text":"                    match data.route_at_pos(pos) {","highlight_start":45,"highlight_end":48}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":3894,"byte_end":3906,"line_start":117,"line_end":117,"column_start":32,"column_end":44,"is_primary":false,"text":[{"text":"                    match data.route_at_pos(pos) {","highlight_start":32,"highlight_end":44}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":11229,"byte_end":11238,"line_start":289,"line_end":289,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn route_at_pos(&self, pos: Pos2) -> Option<RouteId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":11209,"byte_end":11221,"line_start":289,"line_end":289,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn route_at_pos(&self, pos: Pos2) -> Option<RouteId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:117:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":4226,"byte_end":4229,"line_start":122,"line_end":122,"column_start":63,"column_end":66,"is_primary":true,"text":[{"text":"                    *self = EditRoute::Selected { id, anchor: pos };","highlight_start":63,"highlight_end":66}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:122:63: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":4822,"byte_end":4825,"line_start":135,"line_end":135,"column_start":74,"column_end":77,"is_primary":true,"text":[{"text":"                        crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":74,"highlight_end":77}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":4773,"byte_end":4815,"line_start":135,"line_end":135,"column_start":25,"column_end":67,"is_primary":false,"text":[{"text":"                        crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":25,"highlight_end":67}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:135:74: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":5197,"byte_end":5200,"line_start":141,"line_end":141,"column_start":48,"column_end":51,"is_primary":true,"text":[{"text":"                    match start_drag(data, id, pos) {","highlight_start":48,"highlight_end":51}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":5176,"byte_end":5186,"line_start":141,"line_end":141,"column_start":27,"column_end":37,"is_primary":false,"text":[{"text":"                    match start_drag(data, id, pos) {","highlight_start":27,"highlight_end":37}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":16123,"byte_end":16132,"line_start":415,"line_end":415,"column_start":44,"column_end":53,"is_primary":false,"text":[{"text":"fn start_drag(data: &Drawing, id: RouteId, pos: Pos2) -> Option<EditRoute> {","highlight_start":44,"highlight_end":53}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":16083,"byte_end":16093,"line_start":415,"line_end":415,"column_start":4,"column_end":14,"is_primary":true,"text":[{"text":"fn start_drag(data: &Drawing, id: RouteId, pos: Pos2) -> Option<EditRoute> {","highlight_start":4,"highlight_end":14}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:141:48: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":5419,"byte_end":5422,"line_start":145,"line_end":145,"column_start":39,"column_end":42,"is_primary":true,"text":[{"text":"                                data, pos, painter,","highlight_start":39,"highlight_end":42}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/edit_route.rs","byte_start":5340,"byte_end":5379,"line_start":144,"line_end":144,"column_start":41,"column_end":80,"is_primary":false,"text":[{"text":"                            return Some(crate::tools::select_tool::drag_to_move(","highlight_start":41,"highlight_end":80}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":8512,"byte_end":8521,"line_start":191,"line_end":191,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":8479,"byte_end":8491,"line_start":191,"line_end":191,"column_start":15,"column_end":27,"is_primary":true,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":15,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:145:39: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_route.rs","byte_start":10066,"byte_end":10071,"line_start":253,"line_end":253,"column_start":32,"column_end":37,"is_primary":true,"text":[{"text":"                    *cursor += delta;","highlight_start":32,"highlight_end":37}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_route.rs:253:32: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_text_box.rs","byte_start":3856,"byte_end":3893,"line_start":107,"line_end":107,"column_start":23,"column_end":60,"is_primary":true,"text":[{"text":"            position: editor_rect(&buffer, anchor, painter),","highlight_start":23,"highlight_end":60}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/edit_text_box.rs:107:23: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/edit_text_box.rs","byte_start":3949,"byte_end":3983,"line_start":109,"line_end":109,"column_start":19,"column_end":53,"is_primary":true,"text":[{"text":"            font: painter.theme().title_font.clone(),","highlight_start":19,"highlight_end":53}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/edit_text_box.rs:109:19: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `FontId`, found `Font`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/icon.rs","byte_start":1824,"byte_end":1827,"line_start":53,"line_end":53,"column_start":73,"column_end":76,"is_primary":true,"text":[{"text":"                    && let Some(ShapeId::Rect(rid)) = data.shape_at_pos(pos)","highlight_start":73,"highlight_end":76}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/icon.rs","byte_start":1811,"byte_end":1823,"line_start":53,"line_end":53,"column_start":60,"column_end":72,"is_primary":false,"text":[{"text":"                    && let Some(ShapeId::Rect(rid)) = data.shape_at_pos(pos)","highlight_start":60,"highlight_end":72}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/icon.rs:53:73: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_block.rs","byte_start":938,"byte_end":943,"line_start":39,"line_end":39,"column_start":27,"column_end":32,"is_primary":true,"text":[{"text":"            *delta_pos += delta;","highlight_start":27,"highlight_end":32}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_block.rs:39:27: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_block.rs","byte_start":1650,"byte_end":1659,"line_start":57,"line_end":57,"column_start":42,"column_end":51,"is_primary":true,"text":[{"text":"                    && data.shape_at_pos(hover_pos).is_some()","highlight_start":42,"highlight_end":51}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_block.rs","byte_start":1637,"byte_end":1649,"line_start":57,"line_end":57,"column_start":29,"column_end":41,"is_primary":false,"text":[{"text":"                    && data.shape_at_pos(hover_pos).is_some()","highlight_start":29,"highlight_end":41}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_block.rs:57:42: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_block.rs","byte_start":1900,"byte_end":1903,"line_start":62,"line_end":62,"column_start":60,"column_end":63,"is_primary":true,"text":[{"text":"                    && let Some(shape) = data.shape_at_pos(pos)","highlight_start":60,"highlight_end":63}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_block.rs","byte_start":1887,"byte_end":1899,"line_start":62,"line_end":62,"column_start":47,"column_end":59,"is_primary":false,"text":[{"text":"                    && let Some(shape) = data.shape_at_pos(pos)","highlight_start":47,"highlight_end":59}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_block.rs:62:60: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_block_type.rs","byte_start":1188,"byte_end":1193,"line_start":39,"line_end":39,"column_start":31,"column_end":36,"is_primary":true,"text":[{"text":"            self.delta_pos += delta;","highlight_start":31,"highlight_end":36}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_block_type.rs:39:31: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_label.rs","byte_start":1862,"byte_end":1865,"line_start":64,"line_end":64,"column_start":48,"column_end":51,"is_primary":true,"text":[{"text":"                    if data.route_label_at_pos(pos, painter).is_some() {","highlight_start":48,"highlight_end":51}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_label.rs","byte_start":1843,"byte_end":1861,"line_start":64,"line_end":64,"column_start":29,"column_end":47,"is_primary":false,"text":[{"text":"                    if data.route_label_at_pos(pos, painter).is_some() {","highlight_start":29,"highlight_end":47}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":10667,"byte_end":10676,"line_start":272,"line_end":272,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":10624,"byte_end":10642,"line_start":270,"line_end":270,"column_start":12,"column_end":30,"is_primary":true,"text":[{"text":"    pub fn route_label_at_pos(","highlight_start":12,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_label.rs:64:48: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_label.rs","byte_start":2135,"byte_end":2138,"line_start":68,"line_end":68,"column_start":81,"column_end":84,"is_primary":true,"text":[{"text":"                    && let Some((route_id, label_id)) = data.route_label_at_pos(pos, painter)","highlight_start":81,"highlight_end":84}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_label.rs","byte_start":2116,"byte_end":2134,"line_start":68,"line_end":68,"column_start":62,"column_end":80,"is_primary":false,"text":[{"text":"                    && let Some((route_id, label_id)) = data.route_label_at_pos(pos, painter)","highlight_start":62,"highlight_end":80}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":10667,"byte_end":10676,"line_start":272,"line_end":272,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":10624,"byte_end":10642,"line_start":270,"line_end":270,"column_start":12,"column_end":30,"is_primary":true,"text":[{"text":"    pub fn route_label_at_pos(","highlight_start":12,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_label.rs:68:81: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_label.rs","byte_start":3031,"byte_end":3036,"line_start":88,"line_end":88,"column_start":63,"column_end":68,"is_primary":true,"text":[{"text":"                    *preview = geometry.slide_along(*preview, delta);","highlight_start":63,"highlight_end":68}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_label.rs","byte_start":3009,"byte_end":3020,"line_start":88,"line_end":88,"column_start":41,"column_end":52,"is_primary":false,"text":[{"text":"                    *preview = geometry.slide_along(*preview, delta);","highlight_start":41,"highlight_end":52}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/presentation/route.rs","byte_start":6702,"byte_end":6713,"line_start":177,"line_end":177,"column_start":46,"column_end":57,"is_primary":false,"text":[{"text":"    pub fn slide_along(&self, from: FracVal, delta: Vec2) -> FracVal {","highlight_start":46,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/presentation/route.rs","byte_start":6668,"byte_end":6679,"line_start":177,"line_end":177,"column_start":12,"column_end":23,"is_primary":true,"text":[{"text":"    pub fn slide_along(&self, from: FracVal, delta: Vec2) -> FracVal {","highlight_start":12,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_label.rs:88:63: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_multi_pin.rs","byte_start":3953,"byte_end":3958,"line_start":114,"line_end":114,"column_start":35,"column_end":40,"is_primary":true,"text":[{"text":"                self.delta_pos += delta;","highlight_start":35,"highlight_end":40}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_multi_pin.rs:114:35: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_multi_pin.rs","byte_start":3990,"byte_end":3993,"line_start":115,"line_end":115,"column_start":31,"column_end":34,"is_primary":true,"text":[{"text":"                self.cursor = pos;","highlight_start":31,"highlight_end":34}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_multi_pin.rs","byte_start":3976,"byte_end":3987,"line_start":115,"line_end":115,"column_start":17,"column_end":28,"is_primary":false,"text":[{"text":"                self.cursor = pos;","highlight_start":17,"highlight_end":28}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_multi_pin.rs:115:31: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_multi_pin.rs","byte_start":4071,"byte_end":4074,"line_start":117,"line_end":117,"column_start":63,"column_end":66,"is_primary":true,"text":[{"text":"            Some(Event::DragStopped { pos }) => self.cursor = pos,","highlight_start":63,"highlight_end":66}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_multi_pin.rs","byte_start":4057,"byte_end":4068,"line_start":117,"line_end":117,"column_start":49,"column_end":60,"is_primary":false,"text":[{"text":"            Some(Event::DragStopped { pos }) => self.cursor = pos,","highlight_start":49,"highlight_end":60}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_multi_pin.rs:117:63: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_pin.rs","byte_start":1842,"byte_end":1847,"line_start":62,"line_end":62,"column_start":31,"column_end":36,"is_primary":true,"text":[{"text":"                *delta_pos += delta;","highlight_start":31,"highlight_end":36}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_pin.rs:62:31: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_pin.rs","byte_start":3772,"byte_end":3781,"line_start":108,"line_end":108,"column_start":45,"column_end":54,"is_primary":true,"text":[{"text":"                    if data.pin_text_at_pos(hover_pos, painter).is_some() {","highlight_start":45,"highlight_end":54}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_pin.rs","byte_start":3756,"byte_end":3771,"line_start":108,"line_end":108,"column_start":29,"column_end":44,"is_primary":false,"text":[{"text":"                    if data.pin_text_at_pos(hover_pos, painter).is_some() {","highlight_start":29,"highlight_end":44}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":12895,"byte_end":12904,"line_start":335,"line_end":335,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":12855,"byte_end":12870,"line_start":333,"line_end":333,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"    pub fn pin_text_at_pos(","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_pin.rs:108:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_pin.rs","byte_start":4054,"byte_end":4057,"line_start":112,"line_end":112,"column_start":76,"column_end":79,"is_primary":true,"text":[{"text":"                    && let Some((anchor, location)) = data.pin_text_at_pos(pos, painter)","highlight_start":76,"highlight_end":79}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_pin.rs","byte_start":4038,"byte_end":4053,"line_start":112,"line_end":112,"column_start":60,"column_end":75,"is_primary":false,"text":[{"text":"                    && let Some((anchor, location)) = data.pin_text_at_pos(pos, painter)","highlight_start":60,"highlight_end":75}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":12895,"byte_end":12904,"line_start":335,"line_end":335,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":12855,"byte_end":12870,"line_start":333,"line_end":333,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"    pub fn pin_text_at_pos(","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_pin.rs:112:76: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_title.rs","byte_start":1037,"byte_end":1046,"line_start":39,"line_end":39,"column_start":49,"column_end":58,"is_primary":true,"text":[{"text":"                    if data.title_anchor_at_pos(hover_pos).is_some() {","highlight_start":49,"highlight_end":58}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_title.rs","byte_start":1017,"byte_end":1036,"line_start":39,"line_end":39,"column_start":29,"column_end":48,"is_primary":false,"text":[{"text":"                    if data.title_anchor_at_pos(hover_pos).is_some() {","highlight_start":29,"highlight_end":48}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":16307,"byte_end":16316,"line_start":418,"line_end":418,"column_start":39,"column_end":48,"is_primary":false,"text":[{"text":"    pub fn title_anchor_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":39,"highlight_end":48}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":16280,"byte_end":16299,"line_start":418,"line_end":418,"column_start":12,"column_end":31,"is_primary":true,"text":[{"text":"    pub fn title_anchor_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":31}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_title.rs:39:49: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_title.rs","byte_start":1301,"byte_end":1304,"line_start":43,"line_end":43,"column_start":67,"column_end":70,"is_primary":true,"text":[{"text":"                    && let Some(shape) = data.title_anchor_at_pos(pos)","highlight_start":67,"highlight_end":70}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_title.rs","byte_start":1281,"byte_end":1300,"line_start":43,"line_end":43,"column_start":47,"column_end":66,"is_primary":false,"text":[{"text":"                    && let Some(shape) = data.title_anchor_at_pos(pos)","highlight_start":47,"highlight_end":66}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":16307,"byte_end":16316,"line_start":418,"line_end":418,"column_start":39,"column_end":48,"is_primary":false,"text":[{"text":"    pub fn title_anchor_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":39,"highlight_end":48}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":16280,"byte_end":16299,"line_start":418,"line_end":418,"column_start":12,"column_end":31,"is_primary":true,"text":[{"text":"    pub fn title_anchor_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":31}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_title.rs:43:67: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/move_title.rs","byte_start":1680,"byte_end":1685,"line_start":53,"line_end":53,"column_start":35,"column_end":40,"is_primary":true,"text":[{"text":"                    *delta_pos += delta;","highlight_start":35,"highlight_end":40}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/move_title.rs:53:35: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_pin_select.rs","byte_start":1879,"byte_end":1882,"line_start":53,"line_end":53,"column_start":45,"column_end":48,"is_primary":true,"text":[{"text":"                        data.resolve_at_pos(pos, painter),","highlight_start":45,"highlight_end":48}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_pin_select.rs","byte_start":1864,"byte_end":1878,"line_start":53,"line_end":53,"column_start":30,"column_end":44,"is_primary":false,"text":[{"text":"                        data.resolve_at_pos(pos, painter),","highlight_start":30,"highlight_end":44}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":2804,"byte_end":2813,"line_start":73,"line_end":73,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":2765,"byte_end":2779,"line_start":71,"line_end":71,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn resolve_at_pos(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_pin_select.rs:53:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_pin_select.rs","byte_start":2132,"byte_end":2135,"line_start":58,"line_end":58,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"                        MoveMultiPin::new(pins.clone(), pos).into(),","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_pin_select.rs","byte_start":2100,"byte_end":2117,"line_start":58,"line_end":58,"column_start":25,"column_end":42,"is_primary":false,"text":[{"text":"                        MoveMultiPin::new(pins.clone(), pos).into(),","highlight_start":25,"highlight_end":42}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/move_multi_pin.rs","byte_start":1259,"byte_end":1270,"line_start":41,"line_end":41,"column_start":34,"column_end":45,"is_primary":false,"text":[{"text":"    pub fn new(pins: Vec<PinId>, start: Pos2) -> Self {","highlight_start":34,"highlight_end":45}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/move_multi_pin.rs","byte_start":1237,"byte_end":1240,"line_start":41,"line_end":41,"column_start":12,"column_end":15,"is_primary":true,"text":[{"text":"    pub fn new(pins: Vec<PinId>, start: Pos2) -> Self {","highlight_start":12,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_pin_select.rs:58:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_pin_select.rs","byte_start":2264,"byte_end":2267,"line_start":61,"line_end":61,"column_start":72,"column_end":75,"is_primary":true,"text":[{"text":"                    Some(crate::tools::select_tool::drag_to_move(data, pos, painter))","highlight_start":72,"highlight_end":75}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_pin_select.rs","byte_start":2218,"byte_end":2257,"line_start":61,"line_end":61,"column_start":26,"column_end":65,"is_primary":false,"text":[{"text":"                    Some(crate::tools::select_tool::drag_to_move(data, pos, painter))","highlight_start":26,"highlight_end":65}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":8512,"byte_end":8521,"line_start":191,"line_end":191,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":8479,"byte_end":8491,"line_start":191,"line_end":191,"column_start":15,"column_end":27,"is_primary":true,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":15,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_pin_select.rs:61:72: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_pin_select.rs","byte_start":2426,"byte_end":2429,"line_start":65,"line_end":65,"column_start":66,"column_end":69,"is_primary":true,"text":[{"text":"                crate::tools::select_tool::click_to_select(data, pos, painter).unwrap_or_default(),","highlight_start":66,"highlight_end":69}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_pin_select.rs","byte_start":2377,"byte_end":2419,"line_start":65,"line_end":65,"column_start":17,"column_end":59,"is_primary":false,"text":[{"text":"                crate::tools::select_tool::click_to_select(data, pos, painter).unwrap_or_default(),","highlight_start":17,"highlight_end":59}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_pin_select.rs:65:66: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":1862,"byte_end":1867,"line_start":62,"line_end":62,"column_start":27,"column_end":32,"is_primary":true,"text":[{"text":"            *delta_pos += delta;","highlight_start":27,"highlight_end":32}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:62:27: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":2743,"byte_end":2746,"line_start":86,"line_end":86,"column_start":32,"column_end":35,"is_primary":true,"text":[{"text":"                    *current = pos;","highlight_start":32,"highlight_end":35}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_select.rs","byte_start":2732,"byte_end":2740,"line_start":86,"line_end":86,"column_start":21,"column_end":29,"is_primary":false,"text":[{"text":"                    *current = pos;","highlight_start":21,"highlight_end":29}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:86:32: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":5290,"byte_end":5293,"line_start":133,"line_end":133,"column_start":40,"column_end":43,"is_primary":true,"text":[{"text":"                                start: pos,","highlight_start":40,"highlight_end":43}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:133:40: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":5336,"byte_end":5339,"line_start":134,"line_end":134,"column_start":42,"column_end":45,"is_primary":true,"text":[{"text":"                                current: pos,","highlight_start":42,"highlight_end":45}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:134:42: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":5645,"byte_end":5648,"line_start":141,"line_end":141,"column_start":43,"column_end":46,"is_primary":true,"text":[{"text":"                            .shape_at_pos(pos)","highlight_start":43,"highlight_end":46}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_select.rs","byte_start":5632,"byte_end":5644,"line_start":141,"line_end":141,"column_start":30,"column_end":42,"is_primary":false,"text":[{"text":"                            .shape_at_pos(pos)","highlight_start":30,"highlight_end":42}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:141:43: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":6310,"byte_end":6313,"line_start":153,"line_end":153,"column_start":83,"column_end":86,"is_primary":true,"text":[{"text":"                        return Some(crate::tools::select_tool::drag_to_move(data, pos, painter));","highlight_start":83,"highlight_end":86}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_select.rs","byte_start":6264,"byte_end":6303,"line_start":153,"line_end":153,"column_start":37,"column_end":76,"is_primary":false,"text":[{"text":"                        return Some(crate::tools::select_tool::drag_to_move(data, pos, painter));","highlight_start":37,"highlight_end":76}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":8512,"byte_end":8521,"line_start":191,"line_end":191,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":8479,"byte_end":8491,"line_start":191,"line_end":191,"column_start":15,"column_end":27,"is_primary":true,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":15,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:153:83: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":6695,"byte_end":6698,"line_start":159,"line_end":159,"column_start":62,"column_end":65,"is_primary":true,"text":[{"text":"                        if let Some(hit) = data.shape_at_pos(pos) {","highlight_start":62,"highlight_end":65}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_select.rs","byte_start":6682,"byte_end":6694,"line_start":159,"line_end":159,"column_start":49,"column_end":61,"is_primary":false,"text":[{"text":"                        if let Some(hit) = data.shape_at_pos(pos) {","highlight_start":49,"highlight_end":61}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:159:62: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/multi_select.rs","byte_start":7208,"byte_end":7211,"line_start":169,"line_end":169,"column_start":74,"column_end":77,"is_primary":true,"text":[{"text":"                        crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":74,"highlight_end":77}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/multi_select.rs","byte_start":7159,"byte_end":7201,"line_start":169,"line_end":169,"column_start":25,"column_end":67,"is_primary":false,"text":[{"text":"                        crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":25,"highlight_end":67}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/multi_select.rs:169:74: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied","code":{"code":"E0277","explanation":"You tried to use a type which doesn't implement some trait in a place which\nexpected that trait.\n\nErroneous code example:\n\n```compile_fail,E0277\n// here we declare the Foo trait with a bar method\ntrait Foo {\n    fn bar(&self);\n}\n\n// we now declare a function which takes an object implementing the Foo trait\nfn some_func<T: Foo>(foo: T) {\n    foo.bar();\n}\n\nfn main() {\n    // we now call the method with the i32 type, which doesn't implement\n    // the Foo trait\n    some_func(5i32); // error: the trait bound `i32 : Foo` is not satisfied\n}\n```\n\nIn order to fix this error, verify that the type you're using does implement\nthe trait. Example:\n\n```\ntrait Foo {\n    fn bar(&self);\n}\n\n// we implement the trait on the i32 type\nimpl Foo for i32 {\n    fn bar(&self) {}\n}\n\nfn some_func<T: Foo>(foo: T) {\n    foo.bar(); // we can now use this method since i32 implements the\n               // Foo trait\n}\n\nfn main() {\n    some_func(5i32); // ok!\n}\n```\n\nOr in a generic context, an erroneous code example would look like:\n\n```compile_fail,E0277\nfn some_func<T>(foo: T) {\n    println!(\"{:?}\", foo); // error: the trait `core::fmt::Debug` is not\n                           //        implemented for the type `T`\n}\n\nfn main() {\n    // We now call the method with the i32 type,\n    // which *does* implement the Debug trait.\n    some_func(5i32);\n}\n```\n\nNote that the error here is in the definition of the generic function. Although\nwe only call it with a parameter that does implement `Debug`, the compiler\nstill rejects the function. It must work with all possible input types. In\norder to make this example compile, we need to restrict the generic type we're\naccepting:\n\n```\nuse std::fmt;\n\n// Restrict the input type to types that implement Debug.\nfn some_func<T: fmt::Debug>(foo: T) {\n    println!(\"{:?}\", foo);\n}\n\nfn main() {\n    // Calling the method is still fine, as i32 implements Debug.\n    some_func(5i32);\n\n    // This would fail to compile now:\n    // struct WithoutDebug;\n    // some_func(WithoutDebug);\n}\n```\n\nRust only looks at the signature of the called function, as such it must\nalready specify all requirements that will be used for every type parameter.\n"},"level":"error","spans":[{"file_name":"src/tools/nav_tree.rs","byte_start":16463,"byte_end":16532,"line_start":389,"line_end":389,"column_start":21,"column_end":90,"is_primary":true,"text":[{"text":"                    theme.resolve(accent_role(row.accent).unwrap_or(Role::AccentDefault)),","highlight_start":21,"highlight_end":90}],"label":"the trait `From<blockworx_geom::Color>` is not implemented for `Color32`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/nav_tree.rs","byte_start":16375,"byte_end":16388,"line_start":386,"line_end":386,"column_start":19,"column_end":32,"is_primary":false,"text":[{"text":"                p.circle_filled(","highlight_start":19,"highlight_end":32}],"label":"required by a bound introduced by this call","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`Color32` implements trait `From<T>`","code":null,"level":"help","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva.rs","byte_start":4602,"byte_end":4629,"line_start":175,"line_end":175,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Hsva> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<Hsva>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/hsva_gamma.rs","byte_start":630,"byte_end":662,"line_start":26,"line_end":26,"column_start":1,"column_end":33,"is_primary":true,"text":[{"text":"impl From<HsvaGamma> for Color32 {","highlight_start":1,"highlight_end":33}],"label":"`From<HsvaGamma>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ecolor-0.36.1/src/lib.rs","byte_start":2096,"byte_end":2123,"line_start":74,"line_end":74,"column_start":1,"column_end":28,"is_primary":true,"text":[{"text":"impl From<Rgba> for Color32 {","highlight_start":1,"highlight_end":28}],"label":"`From<egui::Rgba>`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"required for `blockworx_geom::Color` to implement `Into<Color32>`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"required by a bound in `egui::Painter::circle_filled`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":11575,"byte_end":11588,"line_start":356,"line_end":356,"column_start":12,"column_end":25,"is_primary":false,"text":[{"text":"    pub fn circle_filled(","highlight_start":12,"highlight_end":25}],"label":"required by a bound in this associated function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/egui-0.36.1/src/painter.rs","byte_start":11673,"byte_end":11686,"line_start":360,"line_end":360,"column_start":26,"column_end":39,"is_primary":true,"text":[{"text":"        fill_color: impl Into<Color32>,","highlight_start":26,"highlight_end":39}],"label":"required by this bound in `Painter::circle_filled`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/nav_tree.rs:389:21: \u001b[1m\u001b[91merror[E0277]\u001b[0m: the trait bound `Color32: From<blockworx_geom::Color>` is not satisfied: the trait `From<blockworx_geom::Color>` is not implemented for `Color32`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_area.rs","byte_start":1187,"byte_end":1190,"line_start":40,"line_end":40,"column_start":56,"column_end":59,"is_primary":true,"text":[{"text":"                    *self = NewArea::Dragging { start: pos };","highlight_start":56,"highlight_end":59}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_area.rs:40:56: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_area.rs","byte_start":1408,"byte_end":1411,"line_start":45,"line_end":45,"column_start":59,"column_end":62,"is_primary":true,"text":[{"text":"                    let rect = Rect::from_two_pos(*start, pos);","highlight_start":59,"highlight_end":62}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_area.rs","byte_start":1381,"byte_end":1399,"line_start":45,"line_end":45,"column_start":32,"column_end":50,"is_primary":false,"text":[{"text":"                    let rect = Rect::from_two_pos(*start, pos);","highlight_start":32,"highlight_end":50}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":1919,"byte_end":1931,"line_start":66,"line_end":66,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn from_two_pos(a: Pos2, b: Pos2) -> Self {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_area.rs:45:59: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_area.rs","byte_start":1827,"byte_end":1830,"line_start":54,"line_end":54,"column_start":67,"column_end":70,"is_primary":true,"text":[{"text":"                    let candidate = Rect::from_two_pos(start_pos, pos);","highlight_start":67,"highlight_end":70}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_area.rs","byte_start":1797,"byte_end":1815,"line_start":54,"line_end":54,"column_start":37,"column_end":55,"is_primary":false,"text":[{"text":"                    let candidate = Rect::from_two_pos(start_pos, pos);","highlight_start":37,"highlight_end":55}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":1919,"byte_end":1931,"line_start":66,"line_end":66,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn from_two_pos(a: Pos2, b: Pos2) -> Self {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_area.rs:54:67: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_area.rs","byte_start":2026,"byte_end":2029,"line_start":57,"line_end":57,"column_start":62,"column_end":65,"is_primary":true,"text":[{"text":"                        let shape = data.add_area(start_pos, pos);","highlight_start":62,"highlight_end":65}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_area.rs","byte_start":2006,"byte_end":2014,"line_start":57,"line_end":57,"column_start":42,"column_end":50,"is_primary":false,"text":[{"text":"                        let shape = data.add_area(start_pos, pos);","highlight_start":42,"highlight_end":50}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/drawing.rs","byte_start":28223,"byte_end":28232,"line_start":690,"line_end":690,"column_start":45,"column_end":54,"is_primary":false,"text":[{"text":"    pub fn add_area(&mut self, start: Pos2, end: Pos2) -> ShapeId {","highlight_start":45,"highlight_end":54}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/drawing.rs","byte_start":28190,"byte_end":28198,"line_start":690,"line_end":690,"column_start":12,"column_end":20,"is_primary":true,"text":[{"text":"    pub fn add_area(&mut self, start: Pos2, end: Pos2) -> ShapeId {","highlight_start":12,"highlight_end":20}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_area.rs:57:62: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":1514,"byte_end":1517,"line_start":53,"line_end":53,"column_start":93,"column_end":96,"is_primary":true,"text":[{"text":"                    Some(Event::DragStarted { pos }) => *self = NewBlock::Dragging { start: pos },","highlight_start":93,"highlight_end":96}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:53:93: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":1662,"byte_end":1665,"line_start":56,"line_end":56,"column_start":36,"column_end":39,"is_primary":true,"text":[{"text":"                            start: pos,","highlight_start":36,"highlight_end":39}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:56:36: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":1703,"byte_end":1706,"line_start":57,"line_end":57,"column_start":37,"column_end":40,"is_primary":true,"text":[{"text":"                            corner: pos,","highlight_start":37,"highlight_end":40}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:57:37: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":2068,"byte_end":2071,"line_start":68,"line_end":68,"column_start":49,"column_end":52,"is_primary":true,"text":[{"text":"                        preview(painter, start, pos);","highlight_start":49,"highlight_end":52}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":2044,"byte_end":2051,"line_start":68,"line_end":68,"column_start":25,"column_end":32,"is_primary":false,"text":[{"text":"                        preview(painter, start, pos);","highlight_start":25,"highlight_end":32}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/new_block.rs","byte_start":3487,"byte_end":3499,"line_start":103,"line_end":103,"column_start":59,"column_end":71,"is_primary":false,"text":[{"text":"fn preview(painter: &mut Style<'_, Painter>, start: Pos2, corner: Pos2) {","highlight_start":59,"highlight_end":71}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":3432,"byte_end":3439,"line_start":103,"line_end":103,"column_start":4,"column_end":11,"is_primary":true,"text":[{"text":"fn preview(painter: &mut Style<'_, Painter>, start: Pos2, corner: Pos2) {","highlight_start":4,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:68:49: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":2343,"byte_end":2346,"line_start":74,"line_end":74,"column_start":45,"column_end":48,"is_primary":true,"text":[{"text":"                        create(data, start, pos)","highlight_start":45,"highlight_end":48}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":2323,"byte_end":2329,"line_start":74,"line_end":74,"column_start":25,"column_end":31,"is_primary":false,"text":[{"text":"                        create(data, start, pos)","highlight_start":25,"highlight_end":31}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/new_block.rs","byte_start":3918,"byte_end":3930,"line_start":115,"line_end":115,"column_start":44,"column_end":56,"is_primary":false,"text":[{"text":"fn create(data: &mut Drawing, start: Pos2, corner: Pos2) -> Option<Action> {","highlight_start":44,"highlight_end":56}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":3878,"byte_end":3884,"line_start":115,"line_end":115,"column_start":4,"column_end":10,"is_primary":true,"text":[{"text":"fn create(data: &mut Drawing, start: Pos2, corner: Pos2) -> Option<Action> {","highlight_start":4,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:74:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":2653,"byte_end":2656,"line_start":82,"line_end":82,"column_start":90,"column_end":93,"is_primary":true,"text":[{"text":"                    Some(Event::HoverAt(pos) | Event::Dragging { pos, .. }) => *corner = pos,","highlight_start":90,"highlight_end":93}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":2643,"byte_end":2650,"line_start":82,"line_end":82,"column_start":80,"column_end":87,"is_primary":false,"text":[{"text":"                    Some(Event::HoverAt(pos) | Event::Dragging { pos, .. }) => *corner = pos,","highlight_start":80,"highlight_end":87}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:82:90: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":3047,"byte_end":3050,"line_start":87,"line_end":87,"column_start":67,"column_end":70,"is_primary":true,"text":[{"text":"                        if let Some(action) = create(data, start, pos) {","highlight_start":67,"highlight_end":70}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":3027,"byte_end":3033,"line_start":87,"line_end":87,"column_start":47,"column_end":53,"is_primary":false,"text":[{"text":"                        if let Some(action) = create(data, start, pos) {","highlight_start":47,"highlight_end":53}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/new_block.rs","byte_start":3918,"byte_end":3930,"line_start":115,"line_end":115,"column_start":44,"column_end":56,"is_primary":false,"text":[{"text":"fn create(data: &mut Drawing, start: Pos2, corner: Pos2) -> Option<Action> {","highlight_start":44,"highlight_end":56}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":3878,"byte_end":3884,"line_start":115,"line_end":115,"column_start":4,"column_end":10,"is_primary":true,"text":[{"text":"fn create(data: &mut Drawing, start: Pos2, corner: Pos2) -> Option<Action> {","highlight_start":4,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:87:67: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_block.rs","byte_start":3215,"byte_end":3218,"line_start":91,"line_end":91,"column_start":35,"column_end":38,"is_primary":true,"text":[{"text":"                        *corner = pos;","highlight_start":35,"highlight_end":38}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_block.rs","byte_start":3205,"byte_end":3212,"line_start":91,"line_end":91,"column_start":25,"column_end":32,"is_primary":false,"text":[{"text":"                        *corner = pos;","highlight_start":25,"highlight_end":32}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_block.rs:91:35: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_image.rs","byte_start":2427,"byte_end":2430,"line_start":68,"line_end":68,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"                    *self = NewImage::Dragging { start: pos };","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_image.rs:68:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_image.rs","byte_start":2649,"byte_end":2652,"line_start":73,"line_end":73,"column_start":59,"column_end":62,"is_primary":true,"text":[{"text":"                    let rect = Rect::from_two_pos(*start, pos);","highlight_start":59,"highlight_end":62}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_image.rs","byte_start":2622,"byte_end":2640,"line_start":73,"line_end":73,"column_start":32,"column_end":50,"is_primary":false,"text":[{"text":"                    let rect = Rect::from_two_pos(*start, pos);","highlight_start":32,"highlight_end":50}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":1919,"byte_end":1931,"line_start":66,"line_end":66,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn from_two_pos(a: Pos2, b: Pos2) -> Self {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_image.rs:73:59: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/new_image.rs","byte_start":3023,"byte_end":3026,"line_start":81,"line_end":81,"column_start":64,"column_end":67,"is_primary":true,"text":[{"text":"                    let candidate = Rect::from_two_pos(*start, pos);","highlight_start":64,"highlight_end":67}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/new_image.rs","byte_start":2996,"byte_end":3014,"line_start":81,"line_end":81,"column_start":37,"column_end":55,"is_primary":false,"text":[{"text":"                    let candidate = Rect::from_two_pos(*start, pos);","highlight_start":37,"highlight_end":55}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":1919,"byte_end":1931,"line_start":66,"line_end":66,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn from_two_pos(a: Pos2, b: Pos2) -> Self {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/new_image.rs:81:64: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_block_type.rs","byte_start":3635,"byte_end":3643,"line_start":107,"line_end":107,"column_start":13,"column_end":21,"is_primary":true,"text":[{"text":"            position,","highlight_start":13,"highlight_end":21}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_block_type.rs:107:13: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_block_type.rs","byte_start":3703,"byte_end":3737,"line_start":109,"line_end":109,"column_start":19,"column_end":53,"is_primary":true,"text":[{"text":"            font: painter.theme().title_font.clone(),","highlight_start":19,"highlight_end":53}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/rename_block_type.rs:109:19: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `FontId`, found `Font`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_pin.rs","byte_start":5440,"byte_end":5443,"line_start":150,"line_end":150,"column_start":42,"column_end":45,"is_primary":true,"text":[{"text":"                        .pin_text_at_pos(pos, painter)","highlight_start":42,"highlight_end":45}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/rename_pin.rs","byte_start":5424,"byte_end":5439,"line_start":150,"line_end":150,"column_start":26,"column_end":41,"is_primary":false,"text":[{"text":"                        .pin_text_at_pos(pos, painter)","highlight_start":26,"highlight_end":41}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":12895,"byte_end":12904,"line_start":335,"line_end":335,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":12855,"byte_end":12870,"line_start":333,"line_end":333,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"    pub fn pin_text_at_pos(","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_pin.rs:150:42: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_pin.rs","byte_start":5596,"byte_end":5599,"line_start":153,"line_end":153,"column_start":49,"column_end":52,"is_primary":true,"text":[{"text":"                            data.pin_tag_at_pos(pos, painter)","highlight_start":49,"highlight_end":52}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/rename_pin.rs","byte_start":5581,"byte_end":5595,"line_start":153,"line_end":153,"column_start":34,"column_end":48,"is_primary":false,"text":[{"text":"                            data.pin_tag_at_pos(pos, painter)","highlight_start":34,"highlight_end":48}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":14261,"byte_end":14270,"line_start":368,"line_end":368,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":14222,"byte_end":14236,"line_start":366,"line_end":366,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn pin_tag_at_pos(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_pin.rs:153:49: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_pin.rs","byte_start":8527,"byte_end":8565,"line_start":212,"line_end":212,"column_start":31,"column_end":69,"is_primary":true,"text":[{"text":"                        text: painter.theme().resolve(Role::PinText),","highlight_start":31,"highlight_end":69}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/rename_pin.rs:212:31: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_pin.rs","byte_start":8603,"byte_end":8643,"line_start":213,"line_end":213,"column_start":37,"column_end":77,"is_primary":true,"text":[{"text":"                        background: painter.theme().resolve(Role::ShapeFill),","highlight_start":37,"highlight_end":77}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/rename_pin.rs:213:37: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_pin.rs","byte_start":8797,"byte_end":8805,"line_start":218,"line_end":218,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":"                    position,","highlight_start":21,"highlight_end":29}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_pin.rs:218:21: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_pin.rs","byte_start":8862,"byte_end":8866,"line_start":220,"line_end":220,"column_start":21,"column_end":25,"is_primary":true,"text":[{"text":"                    font,","highlight_start":21,"highlight_end":25}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/rename_pin.rs:220:21: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `FontId`, found `Font`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_route.rs","byte_start":2974,"byte_end":2977,"line_start":93,"line_end":93,"column_start":81,"column_end":84,"is_primary":true,"text":[{"text":"                    && let Some((route_id, label_id)) = data.route_label_at_pos(pos, painter)","highlight_start":81,"highlight_end":84}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/rename_route.rs","byte_start":2955,"byte_end":2973,"line_start":93,"line_end":93,"column_start":62,"column_end":80,"is_primary":false,"text":[{"text":"                    && let Some((route_id, label_id)) = data.route_label_at_pos(pos, painter)","highlight_start":62,"highlight_end":80}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":10667,"byte_end":10676,"line_start":272,"line_end":272,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":10624,"byte_end":10642,"line_start":270,"line_end":270,"column_start":12,"column_end":30,"is_primary":true,"text":[{"text":"    pub fn route_label_at_pos(","highlight_start":12,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_route.rs:93:81: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_route.rs","byte_start":4288,"byte_end":4297,"line_start":124,"line_end":124,"column_start":31,"column_end":40,"is_primary":true,"text":[{"text":"                    position: *position,","highlight_start":31,"highlight_end":40}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_route.rs:124:31: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_route.rs","byte_start":4374,"byte_end":4408,"line_start":126,"line_end":126,"column_start":27,"column_end":61,"is_primary":true,"text":[{"text":"                    font: painter.theme().route_font.clone(),","highlight_start":27,"highlight_end":61}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/rename_route.rs:126:27: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `FontId`, found `Font`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_title.rs","byte_start":2985,"byte_end":2988,"line_start":90,"line_end":90,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"                    && let Some(id) = data.title_at_pos(pos, painter)","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/rename_title.rs","byte_start":2972,"byte_end":2984,"line_start":90,"line_end":90,"column_start":44,"column_end":56,"is_primary":false,"text":[{"text":"                    && let Some(id) = data.title_at_pos(pos, painter)","highlight_start":44,"highlight_end":56}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":15086,"byte_end":15095,"line_start":392,"line_end":392,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn title_at_pos(&self, pos: Pos2, painter: &Style<'_, impl Renderer>) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":15066,"byte_end":15078,"line_start":392,"line_end":392,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn title_at_pos(&self, pos: Pos2, painter: &Style<'_, impl Renderer>) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_title.rs:90:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_title.rs","byte_start":4628,"byte_end":4636,"line_start":122,"line_end":122,"column_start":21,"column_end":29,"is_primary":true,"text":[{"text":"                    position,","highlight_start":21,"highlight_end":29}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/rename_title.rs:122:21: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/rename_title.rs","byte_start":4699,"byte_end":4733,"line_start":124,"line_end":124,"column_start":27,"column_end":61,"is_primary":true,"text":[{"text":"                    font: painter.theme().title_font.clone(),","highlight_start":27,"highlight_end":61}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/rename_title.rs:124:27: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `FontId`, found `Font`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":15812,"byte_end":15817,"line_start":406,"line_end":406,"column_start":41,"column_end":46,"is_primary":true,"text":[{"text":"                raw_delta: *delta_pos + delta,","highlight_start":41,"highlight_end":46}],"label":"expected `blockworx_geom::Vec2`, found `egui::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":15799,"byte_end":15809,"line_start":406,"line_end":406,"column_start":28,"column_end":38,"is_primary":false,"text":[{"text":"                raw_delta: *delta_pos + delta,","highlight_start":28,"highlight_end":38}],"label":"expected because this is `blockworx_geom::Vec2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Vec2` and `blockworx_geom::Vec2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Vec2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/vec2.rs","byte_start":532,"byte_end":547,"line_start":16,"line_end":16,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Vec2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/vec2.rs","byte_start":224,"byte_end":239,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Vec2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:406:41: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Vec2`, found `egui::Vec2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":16680,"byte_end":16683,"line_start":432,"line_end":432,"column_start":60,"column_end":63,"is_primary":true,"text":[{"text":"                    && let Some(shape) = data.shape_at_pos(pos)","highlight_start":60,"highlight_end":63}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":16667,"byte_end":16679,"line_start":432,"line_end":432,"column_start":47,"column_end":59,"is_primary":false,"text":[{"text":"                    && let Some(shape) = data.shape_at_pos(pos)","highlight_start":47,"highlight_end":59}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:432:60: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":18376,"byte_end":18379,"line_start":460,"line_end":460,"column_start":88,"column_end":91,"is_primary":true,"text":[{"text":"                    if let Some(tool) = crate::tools::select_tool::editor_at_pos(data, pos, painter)","highlight_start":88,"highlight_end":91}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":18329,"byte_end":18369,"line_start":460,"line_end":460,"column_start":41,"column_end":81,"is_primary":false,"text":[{"text":"                    if let Some(tool) = crate::tools::select_tool::editor_at_pos(data, pos, painter)","highlight_start":41,"highlight_end":81}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":4523,"byte_end":4532,"line_start":112,"line_end":112,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":4484,"byte_end":4497,"line_start":110,"line_end":110,"column_start":15,"column_end":28,"is_primary":true,"text":[{"text":"pub(crate) fn editor_at_pos(","highlight_start":15,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:460:88: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":18778,"byte_end":18781,"line_start":468,"line_end":468,"column_start":86,"column_end":89,"is_primary":true,"text":[{"text":"                    && let Some(HitTarget::Pin { anchor, .. }) = data.resolve_at_pos(pos, painter)","highlight_start":86,"highlight_end":89}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":18763,"byte_end":18777,"line_start":468,"line_end":468,"column_start":71,"column_end":85,"is_primary":false,"text":[{"text":"                    && let Some(HitTarget::Pin { anchor, .. }) = data.resolve_at_pos(pos, painter)","highlight_start":71,"highlight_end":85}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":2804,"byte_end":2813,"line_start":73,"line_end":73,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":2765,"byte_end":2779,"line_start":71,"line_end":71,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn resolve_at_pos(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:468:86: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":20084,"byte_end":20087,"line_start":488,"line_end":488,"column_start":78,"column_end":81,"is_primary":true,"text":[{"text":"                        && let Some((loc, _)) = new_pin_target_at(data, rid, pos)","highlight_start":78,"highlight_end":81}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":20055,"byte_end":20072,"line_start":488,"line_end":488,"column_start":49,"column_end":66,"is_primary":false,"text":[{"text":"                        && let Some((loc, _)) = new_pin_target_at(data, rid, pos)","highlight_start":49,"highlight_end":66}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":11202,"byte_end":11211,"line_start":272,"line_end":272,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":11141,"byte_end":11158,"line_start":269,"line_end":269,"column_start":15,"column_end":32,"is_primary":true,"text":[{"text":"pub(crate) fn new_pin_target_at(","highlight_start":15,"highlight_end":32}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:488:78: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":20560,"byte_end":20572,"line_start":497,"line_end":497,"column_start":83,"column_end":95,"is_primary":true,"text":[{"text":"                        && let Some((loc, center)) = new_pin_target_at(data, rid, press.origin)","highlight_start":83,"highlight_end":95}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":20531,"byte_end":20548,"line_start":497,"line_end":497,"column_start":54,"column_end":71,"is_primary":false,"text":[{"text":"                        && let Some((loc, center)) = new_pin_target_at(data, rid, press.origin)","highlight_start":54,"highlight_end":71}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":11202,"byte_end":11211,"line_start":272,"line_end":272,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":11141,"byte_end":11158,"line_start":269,"line_end":269,"column_start":15,"column_end":32,"is_primary":true,"text":[{"text":"pub(crate) fn new_pin_target_at(","highlight_start":15,"highlight_end":32}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:497:83: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":22184,"byte_end":22187,"line_start":525,"line_end":525,"column_start":62,"column_end":65,"is_primary":true,"text":[{"text":"                        if let Some(hit) = data.shape_at_pos(pos) {","highlight_start":62,"highlight_end":65}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":22171,"byte_end":22183,"line_start":525,"line_end":525,"column_start":49,"column_end":61,"is_primary":false,"text":[{"text":"                        if let Some(hit) = data.shape_at_pos(pos) {","highlight_start":49,"highlight_end":61}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:525:62: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":22725,"byte_end":22728,"line_start":535,"line_end":535,"column_start":42,"column_end":45,"is_primary":true,"text":[{"text":"                    if data.shape_at_pos(pos) != Some(shape) {","highlight_start":42,"highlight_end":45}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":22712,"byte_end":22724,"line_start":535,"line_end":535,"column_start":29,"column_end":41,"is_primary":false,"text":[{"text":"                    if data.shape_at_pos(pos) != Some(shape) {","highlight_start":29,"highlight_end":41}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":5881,"byte_end":5890,"line_start":155,"line_end":155,"column_start":32,"column_end":41,"is_primary":false,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":32,"highlight_end":41}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":5861,"byte_end":5873,"line_start":155,"line_end":155,"column_start":12,"column_end":24,"is_primary":true,"text":[{"text":"    pub fn shape_at_pos(&self, pos: Pos2) -> Option<ShapeId> {","highlight_start":12,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:535:42: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":22861,"byte_end":22864,"line_start":537,"line_end":537,"column_start":78,"column_end":81,"is_primary":true,"text":[{"text":"                            crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":78,"highlight_end":81}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":22812,"byte_end":22854,"line_start":537,"line_end":537,"column_start":29,"column_end":71,"is_primary":false,"text":[{"text":"                            crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":29,"highlight_end":71}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:537:78: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":23348,"byte_end":23351,"line_start":548,"line_end":548,"column_start":36,"column_end":39,"is_primary":true,"text":[{"text":"                            start: pos,","highlight_start":36,"highlight_end":39}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:548:36: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":23390,"byte_end":23393,"line_start":549,"line_end":549,"column_start":38,"column_end":41,"is_primary":true,"text":[{"text":"                            current: pos,","highlight_start":38,"highlight_end":41}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:549:38: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":24137,"byte_end":24140,"line_start":563,"line_end":563,"column_start":52,"column_end":55,"is_primary":true,"text":[{"text":"                            resize_mode_at(&block, pos)?,","highlight_start":52,"highlight_end":55}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":24114,"byte_end":24128,"line_start":563,"line_end":563,"column_start":29,"column_end":43,"is_primary":false,"text":[{"text":"                            resize_mode_at(&block, pos)?,","highlight_start":29,"highlight_end":43}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":14054,"byte_end":14063,"line_start":344,"line_end":344,"column_start":55,"column_end":64,"is_primary":false,"text":[{"text":"fn resize_mode_at(shape: &crate::shape::ShapeRef<'_>, pos: Pos2) -> Option<ResizeMode> {","highlight_start":55,"highlight_end":64}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":14003,"byte_end":14017,"line_start":344,"line_end":344,"column_start":4,"column_end":18,"is_primary":true,"text":[{"text":"fn resize_mode_at(shape: &crate::shape::ShapeRef<'_>, pos: Pos2) -> Option<ResizeMode> {","highlight_start":4,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:563:52: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":24700,"byte_end":24703,"line_start":576,"line_end":576,"column_start":79,"column_end":82,"is_primary":true,"text":[{"text":"                    return Some(crate::tools::select_tool::drag_to_move(data, pos, painter));","highlight_start":79,"highlight_end":82}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":24654,"byte_end":24693,"line_start":576,"line_end":576,"column_start":33,"column_end":72,"is_primary":false,"text":[{"text":"                    return Some(crate::tools::select_tool::drag_to_move(data, pos, painter));","highlight_start":33,"highlight_end":72}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":8512,"byte_end":8521,"line_start":191,"line_end":191,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":8479,"byte_end":8491,"line_start":191,"line_end":191,"column_start":15,"column_end":27,"is_primary":true,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":15,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:576:79: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":27766,"byte_end":27778,"line_start":646,"line_end":646,"column_start":72,"column_end":84,"is_primary":true,"text":[{"text":"                        .and_then(|press| new_pin_target_at(data, rid, press.origin))","highlight_start":72,"highlight_end":84}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":27737,"byte_end":27754,"line_start":646,"line_end":646,"column_start":43,"column_end":60,"is_primary":false,"text":[{"text":"                        .and_then(|press| new_pin_target_at(data, rid, press.origin))","highlight_start":43,"highlight_end":60}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":11202,"byte_end":11211,"line_start":272,"line_end":272,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":11141,"byte_end":11158,"line_start":269,"line_end":269,"column_start":15,"column_end":32,"is_primary":true,"text":[{"text":"pub(crate) fn new_pin_target_at(","highlight_start":15,"highlight_end":32}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:646:72: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":27887,"byte_end":27892,"line_start":648,"line_end":648,"column_start":55,"column_end":60,"is_primary":true,"text":[{"text":"                    draw_new_pin_targets(&block, rid, hover, held, painter);","highlight_start":55,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":27853,"byte_end":27873,"line_start":648,"line_end":648,"column_start":21,"column_end":41,"is_primary":false,"text":[{"text":"                    draw_new_pin_targets(&block, rid, hover, held, painter);","highlight_start":21,"highlight_end":41}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/resize_block.rs","byte_start":11799,"byte_end":11818,"line_start":286,"line_end":286,"column_start":5,"column_end":24,"is_primary":false,"text":[{"text":"    hover: Option<Pos2>,","highlight_start":5,"highlight_end":24}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/resize_block.rs","byte_start":11727,"byte_end":11747,"line_start":283,"line_end":283,"column_start":4,"column_end":24,"is_primary":true,"text":[{"text":"fn draw_new_pin_targets(","highlight_start":4,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/resize_block.rs:648:55: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/retype_pin.rs","byte_start":3534,"byte_end":3542,"line_start":104,"line_end":104,"column_start":13,"column_end":21,"is_primary":true,"text":[{"text":"            position,","highlight_start":13,"highlight_end":21}],"label":"expected `egui::Rect`, found `blockworx_geom::Rect`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`blockworx_geom::Rect` and `egui::Rect` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`blockworx_geom::Rect` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/rect.rs","byte_start":600,"byte_end":615,"line_start":15,"line_end":15,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`egui::Rect` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/rect.rs","byte_start":1066,"byte_end":1081,"line_start":25,"line_end":25,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Rect {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/retype_pin.rs:104:13: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `egui::Rect`, found `blockworx_geom::Rect`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/retype_pin.rs","byte_start":3602,"byte_end":3643,"line_start":106,"line_end":106,"column_start":19,"column_end":60,"is_primary":true,"text":[{"text":"            font: painter.theme().pin_subtitle_font.clone(),","highlight_start":19,"highlight_end":60}],"label":"expected `FontId`, found `Font`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/retype_pin.rs:106:19: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `FontId`, found `Font`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/retype_pin.rs","byte_start":4042,"byte_end":4080,"line_start":115,"line_end":115,"column_start":23,"column_end":61,"is_primary":true,"text":[{"text":"                text: painter.theme().resolve(Role::PinText),","highlight_start":23,"highlight_end":61}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/retype_pin.rs:115:23: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/retype_pin.rs","byte_start":4110,"byte_end":4150,"line_start":116,"line_end":116,"column_start":29,"column_end":69,"is_primary":true,"text":[{"text":"                background: painter.theme().resolve(Role::ShapeFill),","highlight_start":29,"highlight_end":69}],"label":"expected `Color32`, found `Color`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"src/tools/retype_pin.rs:116:29: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `Color32`, found `Color`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_start.rs","byte_start":4922,"byte_end":4925,"line_start":136,"line_end":136,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"        && let Some((anchor, center)) = target_at(data, pos, grab)","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_start.rs","byte_start":4906,"byte_end":4915,"line_start":136,"line_end":136,"column_start":41,"column_end":50,"is_primary":false,"text":[{"text":"        && let Some((anchor, center)) = target_at(data, pos, grab)","highlight_start":41,"highlight_end":50}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/route_start.rs","byte_start":6406,"byte_end":6415,"line_start":170,"line_end":170,"column_start":30,"column_end":39,"is_primary":false,"text":[{"text":"fn target_at(data: &Drawing, pos: Pos2, grab: WorldPx) -> Option<(PinId, Pos2)> {","highlight_start":30,"highlight_end":39}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_start.rs","byte_start":6380,"byte_end":6389,"line_start":170,"line_end":170,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn target_at(data: &Drawing, pos: Pos2, grab: WorldPx) -> Option<(PinId, Pos2)> {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_start.rs:136:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_start.rs","byte_start":5543,"byte_end":5555,"line_start":149,"line_end":149,"column_start":57,"column_end":69,"is_primary":true,"text":[{"text":"        && let Some((anchor, center)) = target_at(data, press.origin, grab)","highlight_start":57,"highlight_end":69}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_start.rs","byte_start":5527,"byte_end":5536,"line_start":149,"line_end":149,"column_start":41,"column_end":50,"is_primary":false,"text":[{"text":"        && let Some((anchor, center)) = target_at(data, press.origin, grab)","highlight_start":41,"highlight_end":50}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/route_start.rs","byte_start":6406,"byte_end":6415,"line_start":170,"line_end":170,"column_start":30,"column_end":39,"is_primary":false,"text":[{"text":"fn target_at(data: &Drawing, pos: Pos2, grab: WorldPx) -> Option<(PinId, Pos2)> {","highlight_start":30,"highlight_end":39}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_start.rs","byte_start":6380,"byte_end":6389,"line_start":170,"line_end":170,"column_start":4,"column_end":13,"is_primary":true,"text":[{"text":"fn target_at(data: &Drawing, pos: Pos2, grab: WorldPx) -> Option<(PinId, Pos2)> {","highlight_start":4,"highlight_end":13}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_start.rs:149:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":6583,"byte_end":6586,"line_start":189,"line_end":189,"column_start":66,"column_end":69,"is_primary":true,"text":[{"text":"                        if let Some(anchor) = data.anchor_at_pos(pos) {","highlight_start":66,"highlight_end":69}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":6569,"byte_end":6582,"line_start":189,"line_end":189,"column_start":52,"column_end":65,"is_primary":false,"text":[{"text":"                        if let Some(anchor) = data.anchor_at_pos(pos) {","highlight_start":52,"highlight_end":65}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":8640,"byte_end":8649,"line_start":221,"line_end":221,"column_start":33,"column_end":42,"is_primary":false,"text":[{"text":"    pub fn anchor_at_pos(&self, pos: Pos2) -> Option<PinId> {","highlight_start":33,"highlight_end":42}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":8619,"byte_end":8632,"line_start":221,"line_end":221,"column_start":12,"column_end":25,"is_primary":true,"text":[{"text":"    pub fn anchor_at_pos(&self, pos: Pos2) -> Option<PinId> {","highlight_start":12,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:189:66: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":6787,"byte_end":6790,"line_start":193,"line_end":193,"column_start":39,"column_end":42,"is_primary":true,"text":[{"text":"                                head: pos,","highlight_start":39,"highlight_end":42}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:193:39: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":7068,"byte_end":7071,"line_start":200,"line_end":200,"column_start":66,"column_end":69,"is_primary":true,"text":[{"text":"                        if let Some(anchor) = data.anchor_at_pos(pos) {","highlight_start":66,"highlight_end":69}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":7054,"byte_end":7067,"line_start":200,"line_end":200,"column_start":52,"column_end":65,"is_primary":false,"text":[{"text":"                        if let Some(anchor) = data.anchor_at_pos(pos) {","highlight_start":52,"highlight_end":65}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":8640,"byte_end":8649,"line_start":221,"line_end":221,"column_start":33,"column_end":42,"is_primary":false,"text":[{"text":"    pub fn anchor_at_pos(&self, pos: Pos2) -> Option<PinId> {","highlight_start":33,"highlight_end":42}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":8619,"byte_end":8632,"line_start":221,"line_end":221,"column_start":12,"column_end":25,"is_primary":true,"text":[{"text":"    pub fn anchor_at_pos(&self, pos: Pos2) -> Option<PinId> {","highlight_start":12,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:200:66: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":7693,"byte_end":7696,"line_start":214,"line_end":214,"column_start":35,"column_end":38,"is_primary":true,"text":[{"text":"                            head: pos,","highlight_start":35,"highlight_end":38}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:214:35: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":7866,"byte_end":7869,"line_start":218,"line_end":218,"column_start":70,"column_end":73,"is_primary":true,"text":[{"text":"                        if let Some(new_anchor) = data.anchor_at_pos(pos) {","highlight_start":70,"highlight_end":73}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":7852,"byte_end":7865,"line_start":218,"line_end":218,"column_start":56,"column_end":69,"is_primary":false,"text":[{"text":"                        if let Some(new_anchor) = data.anchor_at_pos(pos) {","highlight_start":56,"highlight_end":69}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":8640,"byte_end":8649,"line_start":221,"line_end":221,"column_start":33,"column_end":42,"is_primary":false,"text":[{"text":"    pub fn anchor_at_pos(&self, pos: Pos2) -> Option<PinId> {","highlight_start":33,"highlight_end":42}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":8619,"byte_end":8632,"line_start":221,"line_end":221,"column_start":12,"column_end":25,"is_primary":true,"text":[{"text":"    pub fn anchor_at_pos(&self, pos: Pos2) -> Option<PinId> {","highlight_start":12,"highlight_end":25}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:218:70: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":8505,"byte_end":8508,"line_start":234,"line_end":234,"column_start":45,"column_end":48,"is_primary":true,"text":[{"text":"                            pos: grid_point(pos),","highlight_start":45,"highlight_end":48}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":8494,"byte_end":8504,"line_start":234,"line_end":234,"column_start":34,"column_end":44,"is_primary":false,"text":[{"text":"                            pos: grid_point(pos),","highlight_start":34,"highlight_end":44}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/edit/lower.rs","byte_start":851,"byte_end":860,"line_start":23,"line_end":23,"column_start":19,"column_end":28,"is_primary":false,"text":[{"text":"pub fn grid_point(pos: Pos2) -> GridPoint {","highlight_start":19,"highlight_end":28}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/edit/lower.rs","byte_start":840,"byte_end":850,"line_start":23,"line_end":23,"column_start":8,"column_end":18,"is_primary":true,"text":[{"text":"pub fn grid_point(pos: Pos2) -> GridPoint {","highlight_start":8,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:234:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":9165,"byte_end":9168,"line_start":247,"line_end":247,"column_start":76,"column_end":79,"is_primary":true,"text":[{"text":"                        if let Some(finish) = Self::finish_at(data, start, pos) {","highlight_start":76,"highlight_end":79}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":9136,"byte_end":9151,"line_start":247,"line_end":247,"column_start":47,"column_end":62,"is_primary":false,"text":[{"text":"                        if let Some(finish) = Self::finish_at(data, start, pos) {","highlight_start":47,"highlight_end":62}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":19484,"byte_end":19493,"line_start":488,"line_end":488,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":19444,"byte_end":19453,"line_start":488,"line_end":488,"column_start":8,"column_end":17,"is_primary":true,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":8,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:247:76: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":9447,"byte_end":9450,"line_start":254,"line_end":254,"column_start":36,"column_end":39,"is_primary":true,"text":[{"text":"                            head = pos;","highlight_start":36,"highlight_end":39}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":8300,"byte_end":8308,"line_start":230,"line_end":230,"column_start":21,"column_end":29,"is_primary":false,"text":[{"text":"                    mut head,","highlight_start":21,"highlight_end":29}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:254:36: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":10089,"byte_end":10092,"line_start":266,"line_end":266,"column_start":76,"column_end":79,"is_primary":true,"text":[{"text":"                        if let Some(finish) = Self::finish_at(data, start, pos) {","highlight_start":76,"highlight_end":79}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":10060,"byte_end":10075,"line_start":266,"line_end":266,"column_start":47,"column_end":62,"is_primary":false,"text":[{"text":"                        if let Some(finish) = Self::finish_at(data, start, pos) {","highlight_start":47,"highlight_end":62}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":19484,"byte_end":19493,"line_start":488,"line_end":488,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":19444,"byte_end":19453,"line_start":488,"line_end":488,"column_start":8,"column_end":17,"is_primary":true,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":8,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:266:76: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":10236,"byte_end":10239,"line_start":269,"line_end":269,"column_start":36,"column_end":39,"is_primary":true,"text":[{"text":"                            head = pos;","highlight_start":36,"highlight_end":39}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":8300,"byte_end":8308,"line_start":230,"line_end":230,"column_start":21,"column_end":29,"is_primary":false,"text":[{"text":"                    mut head,","highlight_start":21,"highlight_end":29}],"label":"expected due to the type of this binding","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:269:36: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":11220,"byte_end":11223,"line_start":292,"line_end":292,"column_start":92,"column_end":95,"is_primary":true,"text":[{"text":"                    Some(Event::DragStopped { pos }) => match Self::finish_at(data, start, pos) {","highlight_start":92,"highlight_end":95}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":11191,"byte_end":11206,"line_start":292,"line_end":292,"column_start":63,"column_end":78,"is_primary":false,"text":[{"text":"                    Some(Event::DragStopped { pos }) => match Self::finish_at(data, start, pos) {","highlight_start":63,"highlight_end":78}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":19484,"byte_end":19493,"line_start":488,"line_end":488,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":19444,"byte_end":19453,"line_start":488,"line_end":488,"column_start":8,"column_end":17,"is_primary":true,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":8,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:292:92: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":11481,"byte_end":11484,"line_start":297,"line_end":297,"column_start":35,"column_end":38,"is_primary":true,"text":[{"text":"                            head: pos,","highlight_start":35,"highlight_end":38}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:297:35: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":11676,"byte_end":11679,"line_start":301,"line_end":301,"column_start":60,"column_end":63,"is_primary":true,"text":[{"text":"                        match Self::finish_at(data, start, pos) {","highlight_start":60,"highlight_end":63}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":11647,"byte_end":11662,"line_start":301,"line_end":301,"column_start":31,"column_end":46,"is_primary":false,"text":[{"text":"                        match Self::finish_at(data, start, pos) {","highlight_start":31,"highlight_end":46}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"associated function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":19484,"byte_end":19493,"line_start":488,"line_end":488,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/route_tool.rs","byte_start":19444,"byte_end":19453,"line_start":488,"line_end":488,"column_start":8,"column_end":17,"is_primary":true,"text":[{"text":"    fn finish_at(data: &Drawing, start: PinId, pos: Pos2) -> Option<FinishTarget> {","highlight_start":8,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:301:60: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/route_tool.rs","byte_start":12228,"byte_end":12231,"line_start":313,"line_end":313,"column_start":39,"column_end":42,"is_primary":true,"text":[{"text":"                                head: pos,","highlight_start":39,"highlight_end":42}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/route_tool.rs:313:39: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_pin.rs","byte_start":2357,"byte_end":2360,"line_start":65,"line_end":65,"column_start":45,"column_end":48,"is_primary":true,"text":[{"text":"                        data.resolve_at_pos(pos, painter),","highlight_start":45,"highlight_end":48}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_pin.rs","byte_start":2342,"byte_end":2356,"line_start":65,"line_end":65,"column_start":30,"column_end":44,"is_primary":false,"text":[{"text":"                        data.resolve_at_pos(pos, painter),","highlight_start":30,"highlight_end":44}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":2804,"byte_end":2813,"line_start":73,"line_end":73,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":2765,"byte_end":2779,"line_start":71,"line_end":71,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn resolve_at_pos(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_pin.rs:65:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_pin.rs","byte_start":3112,"byte_end":3115,"line_start":77,"line_end":77,"column_start":88,"column_end":91,"is_primary":true,"text":[{"text":"                    if let Some(tool) = crate::tools::select_tool::editor_at_pos(data, pos, painter)","highlight_start":88,"highlight_end":91}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_pin.rs","byte_start":3065,"byte_end":3105,"line_start":77,"line_end":77,"column_start":41,"column_end":81,"is_primary":false,"text":[{"text":"                    if let Some(tool) = crate::tools::select_tool::editor_at_pos(data, pos, painter)","highlight_start":41,"highlight_end":81}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":4523,"byte_end":4532,"line_start":112,"line_end":112,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":4484,"byte_end":4497,"line_start":110,"line_end":110,"column_start":15,"column_end":28,"is_primary":true,"text":[{"text":"pub(crate) fn editor_at_pos(","highlight_start":15,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_pin.rs:77:88: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_pin.rs","byte_start":3516,"byte_end":3519,"line_start":85,"line_end":85,"column_start":79,"column_end":82,"is_primary":true,"text":[{"text":"                    return Some(crate::tools::select_tool::drag_to_move(data, pos, painter));","highlight_start":79,"highlight_end":82}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_pin.rs","byte_start":3470,"byte_end":3509,"line_start":85,"line_end":85,"column_start":33,"column_end":72,"is_primary":false,"text":[{"text":"                    return Some(crate::tools::select_tool::drag_to_move(data, pos, painter));","highlight_start":33,"highlight_end":72}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":8512,"byte_end":8521,"line_start":191,"line_end":191,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":8479,"byte_end":8491,"line_start":191,"line_end":191,"column_start":15,"column_end":27,"is_primary":true,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":15,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_pin.rs:85:79: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_pin.rs","byte_start":3849,"byte_end":3852,"line_start":91,"line_end":91,"column_start":78,"column_end":81,"is_primary":true,"text":[{"text":"                            crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":78,"highlight_end":81}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_pin.rs","byte_start":3800,"byte_end":3842,"line_start":91,"line_end":91,"column_start":29,"column_end":71,"is_primary":false,"text":[{"text":"                            crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":29,"highlight_end":71}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_pin.rs:91:78: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_pin.rs","byte_start":4010,"byte_end":4013,"line_start":95,"line_end":95,"column_start":45,"column_end":48,"is_primary":true,"text":[{"text":"                    if data.pin_stub_at_pos(pos).map(|(a, _)| a) == Some(anchor) {","highlight_start":45,"highlight_end":48}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_pin.rs","byte_start":3994,"byte_end":4009,"line_start":95,"line_end":95,"column_start":29,"column_end":44,"is_primary":false,"text":[{"text":"                    if data.pin_stub_at_pos(pos).map(|(a, _)| a) == Some(anchor) {","highlight_start":29,"highlight_end":44}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":13747,"byte_end":13756,"line_start":357,"line_end":357,"column_start":35,"column_end":44,"is_primary":false,"text":[{"text":"    pub fn pin_stub_at_pos(&self, pos: Pos2) -> Option<(PinId, PinLocation)> {","highlight_start":35,"highlight_end":44}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":13724,"byte_end":13739,"line_start":357,"line_end":357,"column_start":12,"column_end":27,"is_primary":true,"text":[{"text":"    pub fn pin_stub_at_pos(&self, pos: Pos2) -> Option<(PinId, PinLocation)> {","highlight_start":12,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_pin.rs:95:45: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_pin.rs","byte_start":4493,"byte_end":4496,"line_start":102,"line_end":102,"column_start":78,"column_end":81,"is_primary":true,"text":[{"text":"                            crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":78,"highlight_end":81}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_pin.rs","byte_start":4444,"byte_end":4486,"line_start":102,"line_end":102,"column_start":29,"column_end":71,"is_primary":false,"text":[{"text":"                            crate::tools::select_tool::click_to_select(data, pos, painter)","highlight_start":29,"highlight_end":71}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_pin.rs:102:78: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":1780,"byte_end":1783,"line_start":52,"line_end":52,"column_start":43,"column_end":46,"is_primary":true,"text":[{"text":"                match data.resolve_at_pos(pos, painter) {","highlight_start":43,"highlight_end":46}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":1765,"byte_end":1779,"line_start":52,"line_end":52,"column_start":28,"column_end":42,"is_primary":false,"text":[{"text":"                match data.resolve_at_pos(pos, painter) {","highlight_start":28,"highlight_end":42}],"label":"arguments to this method are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"method defined here","code":null,"level":"note","spans":[{"file_name":"src/widget/hit_target.rs","byte_start":2804,"byte_end":2813,"line_start":73,"line_end":73,"column_start":9,"column_end":18,"is_primary":false,"text":[{"text":"        pos: Pos2,","highlight_start":9,"highlight_end":18}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/widget/hit_target.rs","byte_start":2765,"byte_end":2779,"line_start":71,"line_end":71,"column_start":12,"column_end":26,"is_primary":true,"text":[{"text":"    pub fn resolve_at_pos(","highlight_start":12,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_tool.rs:52:43: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":2965,"byte_end":2968,"line_start":77,"line_end":77,"column_start":57,"column_end":60,"is_primary":true,"text":[{"text":"                if let Some(tool) = editor_at_pos(data, pos, painter) {","highlight_start":57,"highlight_end":60}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":2945,"byte_end":2958,"line_start":77,"line_end":77,"column_start":37,"column_end":50,"is_primary":false,"text":[{"text":"                if let Some(tool) = editor_at_pos(data, pos, painter) {","highlight_start":37,"highlight_end":50}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":4523,"byte_end":4532,"line_start":112,"line_end":112,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":4484,"byte_end":4497,"line_start":110,"line_end":110,"column_start":15,"column_end":28,"is_primary":true,"text":[{"text":"pub(crate) fn editor_at_pos(","highlight_start":15,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_tool.rs:77:57: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":3347,"byte_end":3350,"line_start":83,"line_end":83,"column_start":47,"column_end":50,"is_primary":true,"text":[{"text":"                if editor_target_at_pos(data, pos, painter) {","highlight_start":47,"highlight_end":50}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":3320,"byte_end":3340,"line_start":83,"line_end":83,"column_start":20,"column_end":40,"is_primary":false,"text":[{"text":"                if editor_target_at_pos(data, pos, painter) {","highlight_start":20,"highlight_end":40}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":5993,"byte_end":6002,"line_start":139,"line_end":139,"column_start":41,"column_end":50,"is_primary":false,"text":[{"text":"fn editor_target_at_pos(data: &Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> bool {","highlight_start":41,"highlight_end":50}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":5956,"byte_end":5976,"line_start":139,"line_end":139,"column_start":4,"column_end":24,"is_primary":true,"text":[{"text":"fn editor_target_at_pos(data: &Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> bool {","highlight_start":4,"highlight_end":24}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_tool.rs:83:47: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":3573,"byte_end":3576,"line_start":89,"line_end":89,"column_start":48,"column_end":51,"is_primary":true,"text":[{"text":"                return Some(drag_to_move(data, pos, painter));","highlight_start":48,"highlight_end":51}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":3554,"byte_end":3566,"line_start":89,"line_end":89,"column_start":29,"column_end":41,"is_primary":false,"text":[{"text":"                return Some(drag_to_move(data, pos, painter));","highlight_start":29,"highlight_end":41}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":8512,"byte_end":8521,"line_start":191,"line_end":191,"column_start":48,"column_end":57,"is_primary":false,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":48,"highlight_end":57}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":8479,"byte_end":8491,"line_start":191,"line_end":191,"column_start":15,"column_end":27,"is_primary":true,"text":[{"text":"pub(crate) fn drag_to_move(data: &mut Drawing, pos: Pos2, painter: &Style<'_, Painter>) -> Action {","highlight_start":15,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_tool.rs:89:48: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.\n\nErroneous code examples:\n\n```compile_fail,E0308\nfn plus_one(x: i32) -> i32 {\n    x + 1\n}\n\nplus_one(\"Not a number\");\n//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`\n\nif \"Not a bool\" {\n// ^^^^^^^^^^^^ expected `bool`, found `&str`\n}\n\nlet x: f32 = \"Not a float\";\n//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`\n//     |\n//     expected due to this\n```\n\nThis error occurs when an expression was used in a place where the compiler\nexpected an expression of a different type. It can occur in several cases, the\nmost common being when calling a function and passing an argument which has a\ndifferent type than the matching type in the function declaration.\n"},"level":"error","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":3992,"byte_end":3995,"line_start":96,"line_end":96,"column_start":46,"column_end":49,"is_primary":true,"text":[{"text":"                return click_to_select(data, pos, painter);","highlight_start":46,"highlight_end":49}],"label":"expected `blockworx_geom::Pos2`, found `egui::Pos2`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":3970,"byte_end":3985,"line_start":96,"line_end":96,"column_start":24,"column_end":39,"is_primary":false,"text":[{"text":"                return click_to_select(data, pos, painter);","highlight_start":24,"highlight_end":39}],"label":"arguments to this function are incorrect","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`egui::Pos2` and `blockworx_geom::Pos2` have similar names, but are actually distinct types","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`egui::Pos2` is defined in crate `emath`","code":null,"level":"note","spans":[{"file_name":"/home/samitbasu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/emath-0.36.1/src/pos2.rs","byte_start":553,"byte_end":568,"line_start":18,"line_end":18,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"`blockworx_geom::Pos2` is defined in crate `blockworx_geom`","code":null,"level":"note","spans":[{"file_name":"crates/geom/src/pos2.rs","byte_start":226,"byte_end":241,"line_start":8,"line_end":8,"column_start":1,"column_end":16,"is_primary":true,"text":[{"text":"pub struct Pos2 {","highlight_start":1,"highlight_end":16}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"function defined here","code":null,"level":"note","spans":[{"file_name":"src/tools/select_tool.rs","byte_start":6932,"byte_end":6941,"line_start":163,"line_end":163,"column_start":5,"column_end":14,"is_primary":false,"text":[{"text":"    pos: Pos2,","highlight_start":5,"highlight_end":14}],"label":"","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src/tools/select_tool.rs","byte_start":6891,"byte_end":6906,"line_start":161,"line_end":161,"column_start":15,"column_end":30,"is_primary":true,"text":[{"text":"pub(crate) fn click_to_select(","highlight_start":15,"highlight_end":30}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null}],"rendered":"src/tools/select_tool.rs:96:46: \u001b[1m\u001b[91merror[E0308]\u001b[0m: mismatched types: expected `blockworx_geom::Pos2`, found `egui::Pos2`\n"}
{"$message_type":"diagnostic","message":"aborting due to 195 previous errors; 1 warning emitted","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m: aborting due to 195 previous errors; 1 warning emitted\n"}
