{"$message_type":"diagnostic","message":"unresolved import `blockworx_export`","code":{"code":"E0432","explanation":"An import was unresolved.\n\nErroneous code example:\n\n```compile_fail,E0432\nuse something::Foo; // error: unresolved import `something::Foo`.\n```\n\nIn Rust 2015, paths in `use` statements are relative to the crate root. To\nimport items relative to the current and parent modules, use the `self::` and\n`super::` prefixes, respectively.\n\nIn Rust 2018 or later, paths in `use` statements are relative to the current\nmodule unless they begin with the name of a crate or a literal `crate::`, in\nwhich case they start from the crate root. As in Rust 2015 code, the `self::`\nand `super::` prefixes refer to the current and parent modules respectively.\n\nAlso verify that you didn't misspell the import name and that the import exists\nin the module from where you tried to import it. Example:\n\n```\nuse self::something::Foo; // Ok.\n\nmod something {\n    pub struct Foo;\n}\n# fn main() {}\n```\n\nIf you tried to use a module from an external crate and are using Rust 2015,\nyou may have missed the `extern crate` declaration (which is usually placed in\nthe crate root):\n\n```edition2015\nextern crate core; // Required to use the `core` crate in Rust 2015.\n\nuse core::any;\n# fn main() {}\n```\n\nSince Rust 2018 the `extern crate` declaration is not required and\nyou can instead just `use` it:\n\n```edition2018\nuse core::any; // No extern crate required in Rust 2018.\n# fn main() {}\n```\n"},"level":"error","spans":[{"file_name":"src/export.rs","byte_start":562,"byte_end":578,"line_start":11,"line_end":11,"column_start":9,"column_end":25,"is_primary":true,"text":[{"text":"pub use blockworx_export::{ExportContent, bytes_for, level, pdf, svg};","highlight_start":9,"highlight_end":25}],"label":"use of unresolved module or unlinked crate `blockworx_export`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"there is a crate or module with a similar name","code":null,"level":"help","spans":[{"file_name":"src/export.rs","byte_start":562,"byte_end":578,"line_start":11,"line_end":11,"column_start":9,"column_end":25,"is_primary":true,"text":[{"text":"pub use blockworx_export::{ExportContent, bytes_for, level, pdf, svg};","highlight_start":9,"highlight_end":25}],"label":null,"suggested_replacement":"blockworx_editor","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0432]\u001b[0m\u001b[1m: unresolved import `blockworx_export`\u001b[0m\n  \u001b[1m\u001b[94m--> \u001b[0msrc/export.rs:11:9\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m11\u001b[0m \u001b[1m\u001b[94m|\u001b[0m pub use blockworx_export::{ExportContent, bytes_for, level, pdf, svg};\n   \u001b[1m\u001b[94m|\u001b[0m         \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91muse of unresolved module or unlinked crate `blockworx_export`\u001b[0m\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: there is a crate or module with a similar name\n   \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m11\u001b[0m \u001b[91m- \u001b[0mpub use \u001b[91mblockworx_export\u001b[0m::{ExportContent, bytes_for, level, pdf, svg};\n\u001b[1m\u001b[94m11\u001b[0m \u001b[92m+ \u001b[0mpub use \u001b[92mblockworx_editor\u001b[0m::{ExportContent, bytes_for, level, pdf, svg};\n   \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"function `image_intrinsic_size` is private","code":{"code":"E0603","explanation":"A private item was used outside its scope.\n\nErroneous code example:\n\n```compile_fail,E0603\nmod foo {\n    const PRIVATE: u32 = 0x_a_bad_1dea_u32; // This const is private, so we\n                                            // can't use it outside of the\n                                            // `foo` module.\n}\n\nprintln!(\"const value: {}\", foo::PRIVATE); // error: constant `PRIVATE`\n                                                  //        is private\n```\n\nIn order to fix this error, you need to make the item public by using the `pub`\nkeyword. Example:\n\n```\nmod foo {\n    pub const PRIVATE: u32 = 0x_a_bad_1dea_u32; // We set it public by using the\n                                                // `pub` keyword.\n}\n\nprintln!(\"const value: {}\", foo::PRIVATE); // ok!\n```\n"},"level":"error","spans":[{"file_name":"src/app.rs","byte_start":71038,"byte_end":71058,"line_start":1661,"line_end":1661,"column_start":59,"column_end":79,"is_primary":true,"text":[{"text":"                let Ok(intrinsic) = crate::canvas::image::image_intrinsic_size(&asset) else {","highlight_start":59,"highlight_end":79}],"label":"private function","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the function `image_intrinsic_size` is defined here","code":null,"level":"note","spans":[{"file_name":"crates/egui/src/image.rs","byte_start":847,"byte_end":867,"line_start":17,"line_end":17,"column_start":61,"column_end":81,"is_primary":true,"text":[{"text":"use blockworx_paint::image::{ImageHandle, ImageImportError, image_intrinsic_size};","highlight_start":61,"highlight_end":81}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"import `image_intrinsic_size` directly","code":null,"level":"help","spans":[{"file_name":"src/app.rs","byte_start":71016,"byte_end":71058,"line_start":1661,"line_end":1661,"column_start":37,"column_end":79,"is_primary":true,"text":[{"text":"                let Ok(intrinsic) = crate::canvas::image::image_intrinsic_size(&asset) else {","highlight_start":37,"highlight_end":79}],"label":null,"suggested_replacement":"blockworx_paint::image::image_intrinsic_size","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror[E0603]\u001b[0m\u001b[1m: function `image_intrinsic_size` is private\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0msrc/app.rs:1661:59\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1661\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 let Ok(intrinsic) = crate::canvas::image::image_intrinsic_size(&asset) else {\n     \u001b[1m\u001b[94m|\u001b[0m                                                           \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mprivate function\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[92mnote\u001b[0m: the function `image_intrinsic_size` is defined here\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/egui/src/image.rs:17:61\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m  17\u001b[0m \u001b[1m\u001b[94m|\u001b[0m use blockworx_paint::image::{ImageHandle, ImageImportError, image_intrinsic_size};\n     \u001b[1m\u001b[94m|\u001b[0m                                                             \u001b[1m\u001b[92m^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: import `image_intrinsic_size` directly\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1661\u001b[0m \u001b[91m- \u001b[0m                let Ok(intrinsic) = \u001b[91mcrate::canvas::image::image_intrinsic_size\u001b[0m(&asset) else {\n\u001b[1m\u001b[94m1661\u001b[0m \u001b[92m+ \u001b[0m                let Ok(intrinsic) = \u001b[92mblockworx_paint::image::image_intrinsic_size\u001b[0m(&asset) else {\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 2 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 2 previous errors\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"Some errors have detailed explanations: E0432, E0603.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mSome errors have detailed explanations: E0432, E0603.\u001b[0m\n"}
{"$message_type":"diagnostic","message":"For more information about an error, try `rustc --explain E0432`.","code":null,"level":"failure-note","spans":[],"children":[],"rendered":"\u001b[1mFor more information about an error, try `rustc --explain E0432`.\u001b[0m\n"}
