diff --git a/Cargo.toml b/Cargo.toml index 759c2984..daabfd3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-lib" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "Meta-crate holding the entirety of bracket-lib (and exposing it). Use this for the full roguelike toolkit experience." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-algorithm-traits/Cargo.toml b/bracket-algorithm-traits/Cargo.toml index de799508..90e7ba6f 100755 --- a/bracket-algorithm-traits/Cargo.toml +++ b/bracket-algorithm-traits/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-algorithm-traits" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "Traits required for the bracket-* crates. Adapt your maps to the traits with Algorithm2D, Algorithm3D and BaseMap." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-algorithm-traits/src/algorithm2d.rs b/bracket-algorithm-traits/src/algorithm2d.rs index eeb018cd..515d5107 100755 --- a/bracket-algorithm-traits/src/algorithm2d.rs +++ b/bracket-algorithm-traits/src/algorithm2d.rs @@ -42,7 +42,9 @@ pub trait Algorithm2D: BaseMap { /// Retrieve the map's dimensions. Made optional to reduce API breakage. fn dimensions(&self) -> Point { - panic!("You must either define the dimensions function (trait Algorithm2D) on your map, or define the various point2d_to_index and index_to_point2d functions."); + panic!( + "You must either define the dimensions function (trait Algorithm2D) on your map, or define the various point2d_to_index and index_to_point2d functions." + ); } // Optional - check that an x/y coordinate is within the map bounds. If not provided, diff --git a/bracket-algorithm-traits/src/algorithm3d.rs b/bracket-algorithm-traits/src/algorithm3d.rs index 01b5b7e7..01268ce9 100755 --- a/bracket-algorithm-traits/src/algorithm3d.rs +++ b/bracket-algorithm-traits/src/algorithm3d.rs @@ -44,7 +44,9 @@ pub trait Algorithm3D: BaseMap { /// Dimensions fn dimensions(&self) -> Point3 { - panic!("You must either define the dimensions function (trait Algorithm3D) on your map, or define the various point3d_to_index and index_to_point3d functions."); + panic!( + "You must either define the dimensions function (trait Algorithm3D) on your map, or define the various point3d_to_index and index_to_point3d functions." + ); } // Optional - check that an x/y/z coordinate is within the map bounds. If not provided, diff --git a/bracket-algorithm-traits/src/lib.rs b/bracket-algorithm-traits/src/lib.rs index 3f87a64c..ce731134 100755 --- a/bracket-algorithm-traits/src/lib.rs +++ b/bracket-algorithm-traits/src/lib.rs @@ -42,5 +42,5 @@ pub mod prelude { pub use crate::basemap::BaseMap; /// Since we use `SmallVec`, it's only polite to export it so you don't have to have multiple copies. - pub use smallvec::{smallvec, SmallVec}; + pub use smallvec::{SmallVec, smallvec}; } diff --git a/bracket-bevy/Cargo.toml b/bracket-bevy/Cargo.toml index d8ca869c..54f29e53 100644 --- a/bracket-bevy/Cargo.toml +++ b/bracket-bevy/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "bracket-bevy" version = "0.9.0" -edition = "2021" +edition = "2024" authors = ["Herbert Wolverson "] publish = true description = "ASCII/CP437 Psuedo-terminal for Bevy, based on bracket-lib. Aims to provide everything you need to produce a retro console experience using Bevy for the ECS and rendering." diff --git a/bracket-bevy/examples/bevy_roguelike_tutorial_4/map.rs b/bracket-bevy/examples/bevy_roguelike_tutorial_4/map.rs index 336f1592..54be8751 100644 --- a/bracket-bevy/examples/bevy_roguelike_tutorial_4/map.rs +++ b/bracket-bevy/examples/bevy_roguelike_tutorial_4/map.rs @@ -1,8 +1,8 @@ use crate::rect::Rect; use bevy::prelude::Resource; use bracket_bevy::{ - prelude::{to_cp437, RGB}, BracketContext, RandomNumbers, + prelude::{RGB, to_cp437}, }; use std::cmp::{max, min}; diff --git a/bracket-bevy/src/builder/bterm_builder.rs b/bracket-bevy/src/builder/bterm_builder.rs index 63e2e859..0740b3fa 100644 --- a/bracket-bevy/src/builder/bterm_builder.rs +++ b/bracket-bevy/src/builder/bterm_builder.rs @@ -1,9 +1,10 @@ use crate::{ + RandomNumbers, TerminalBuilderFont, TerminalLayer, consoles::{ - apply_all_batches, default_gutter_size, replace_meshes, update_mouse_position, - update_timing, window_resize, ScreenScaler, + ScreenScaler, apply_all_batches, default_gutter_size, replace_meshes, + update_mouse_position, update_timing, window_resize, }, - fix_images, load_terminals, update_consoles, RandomNumbers, TerminalBuilderFont, TerminalLayer, + fix_images, load_terminals, update_consoles, }; use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, diff --git a/bracket-bevy/src/builder/loader_system.rs b/bracket-bevy/src/builder/loader_system.rs index 5535b9b8..d4fdab81 100644 --- a/bracket-bevy/src/builder/loader_system.rs +++ b/bracket-bevy/src/builder/loader_system.rs @@ -1,6 +1,6 @@ use crate::{ - consoles::SparseConsole, fonts::FontStore, BTermBuilder, BracketContext, SimpleConsole, - TerminalLayer, + BTermBuilder, BracketContext, SimpleConsole, TerminalLayer, consoles::SparseConsole, + fonts::FontStore, }; use bevy::{ asset::UntypedHandle, diff --git a/bracket-bevy/src/consoles/common_draw.rs b/bracket-bevy/src/consoles/common_draw.rs index 989b9ddb..d971f0af 100644 --- a/bracket-bevy/src/consoles/common_draw.rs +++ b/bracket-bevy/src/consoles/common_draw.rs @@ -1,7 +1,7 @@ use super::{ColoredTextSpans, ConsoleFrontEnd, TextAlign}; use crate::{ - prelude::{string_to_cp437, to_cp437}, BracketContext, + prelude::{string_to_cp437, to_cp437}, }; use bracket_color::prelude::*; diff --git a/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs b/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs index cbcadd65..559a08ab 100644 --- a/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs +++ b/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs @@ -1,5 +1,5 @@ use super::SimpleConsoleBackend; -use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SimpleConsole}; +use crate::consoles::{BracketMesh, ScreenScaler, SimpleConsole, scaler::FontScaler}; use bevy::{ asset::RenderAssetUsages, mesh::{Indices, PrimitiveTopology}, diff --git a/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs b/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs index 96eaaecb..660cd726 100644 --- a/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs +++ b/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs @@ -1,4 +1,4 @@ -use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SimpleConsole}; +use crate::consoles::{BracketMesh, ScreenScaler, SimpleConsole, scaler::FontScaler}; use bevy::{ asset::RenderAssetUsages, mesh::{Indices, PrimitiveTopology}, diff --git a/bracket-bevy/src/consoles/simple_console/front_end.rs b/bracket-bevy/src/consoles/simple_console/front_end.rs index 4e8208d0..9b55095e 100644 --- a/bracket-bevy/src/consoles/simple_console/front_end.rs +++ b/bracket-bevy/src/consoles/simple_console/front_end.rs @@ -1,11 +1,11 @@ use super::{ - back_end::{SimpleBackendNoBackground, SimpleBackendWithBackground, SimpleConsoleBackend}, TerminalGlyph, + back_end::{SimpleBackendNoBackground, SimpleBackendWithBackground, SimpleConsoleBackend}, }; use crate::{ - consoles::{common_draw, ConsoleFrontEnd, Rect, ScreenScaler}, - fonts::FontStore, BracketContext, FontCharType, SimpleConsoleFeatures, + consoles::{ConsoleFrontEnd, Rect, ScreenScaler, common_draw}, + fonts::FontStore, }; use bevy::prelude::{Assets, ColorMaterial, Commands, Handle, Mesh}; use bracket_color::prelude::RGBA; diff --git a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs index adfb7f07..2419bbda 100644 --- a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs +++ b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs @@ -1,5 +1,5 @@ use super::SparseConsoleBackend; -use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SparseConsole}; +use crate::consoles::{BracketMesh, ScreenScaler, SparseConsole, scaler::FontScaler}; use bevy::{ asset::RenderAssetUsages, mesh::{Indices, PrimitiveTopology}, diff --git a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs index e4089940..ffcf1cb2 100644 --- a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs +++ b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs @@ -1,5 +1,5 @@ use super::SparseConsoleBackend; -use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SparseConsole}; +use crate::consoles::{BracketMesh, ScreenScaler, SparseConsole, scaler::FontScaler}; use bevy::{ asset::RenderAssetUsages, mesh::{Indices, PrimitiveTopology}, diff --git a/bracket-bevy/src/consoles/sparse_console/front_end.rs b/bracket-bevy/src/consoles/sparse_console/front_end.rs index 03d196f3..fbfdf5bf 100644 --- a/bracket-bevy/src/consoles/sparse_console/front_end.rs +++ b/bracket-bevy/src/consoles/sparse_console/front_end.rs @@ -2,9 +2,9 @@ use std::collections::HashSet; use super::{SparseBackendNoBackground, SparseBackendWithBackground, SparseConsoleBackend}; use crate::{ - consoles::{common_draw, ConsoleFrontEnd, Rect, ScreenScaler, TerminalGlyph}, - fonts::FontStore, BracketContext, FontCharType, SparseConsoleFeatures, + consoles::{ConsoleFrontEnd, Rect, ScreenScaler, TerminalGlyph, common_draw}, + fonts::FontStore, }; use bevy::prelude::{Assets, ColorMaterial, Commands, Handle, Mesh}; use bracket_color::prelude::RGBA; diff --git a/bracket-bevy/src/consoles/update_system.rs b/bracket-bevy/src/consoles/update_system.rs index 35ae6563..67e33dd0 100644 --- a/bracket-bevy/src/consoles/update_system.rs +++ b/bracket-bevy/src/consoles/update_system.rs @@ -99,10 +99,10 @@ pub(crate) fn update_mouse_position( return; }; - if let Some(screen_pos) = wnd.cursor_position() { - if let Ok(world_pos) = camera.viewport_to_world_2d(camera_transform, screen_pos) { - let result = (world_pos.x, world_pos.y); - context.set_mouse_pixel_position(result, &scaler); - } + if let Some(screen_pos) = wnd.cursor_position() + && let Ok(world_pos) = camera.viewport_to_world_2d(camera_transform, screen_pos) + { + let result = (world_pos.x, world_pos.y); + context.set_mouse_pixel_position(result, &scaler); } } diff --git a/bracket-bevy/src/consoles/virtual_console.rs b/bracket-bevy/src/consoles/virtual_console.rs index 44d80010..9838d6ea 100644 --- a/bracket-bevy/src/consoles/virtual_console.rs +++ b/bracket-bevy/src/consoles/virtual_console.rs @@ -1,7 +1,7 @@ use bracket_color::prelude::RGBA; use bracket_geometry::prelude::{Point, Rect}; -use super::{common_draw, ConsoleFrontEnd, TerminalGlyph}; +use super::{ConsoleFrontEnd, TerminalGlyph, common_draw}; use crate::{BracketContext, FontCharType}; pub struct VirtualConsole { diff --git a/bracket-bevy/src/context.rs b/bracket-bevy/src/context.rs index 65d7857e..45a35f61 100644 --- a/bracket-bevy/src/context.rs +++ b/bracket-bevy/src/context.rs @@ -1,7 +1,7 @@ use crate::{ + FontCharType, TerminalScalingMode, consoles::{ConsoleFrontEnd, DrawBatch, DrawCommand, ScreenScaler}, fonts::FontStore, - FontCharType, TerminalScalingMode, }; use bevy::prelude::{Mesh2d, Resource}; use bracket_color::prelude::RGBA; diff --git a/bracket-bevy/src/lib.rs b/bracket-bevy/src/lib.rs index 1b7297c0..af94a01f 100644 --- a/bracket-bevy/src/lib.rs +++ b/bracket-bevy/src/lib.rs @@ -18,8 +18,8 @@ pub type FontCharType = u16; pub mod prelude { pub use crate::{ - consoles::TextAlign, cp437::*, textblock::*, BTermBuilder, BracketContext, DrawBatch, - RandomNumbers, TerminalScalingMode, VirtualConsole, + BTermBuilder, BracketContext, DrawBatch, RandomNumbers, TerminalScalingMode, + VirtualConsole, consoles::TextAlign, cp437::*, textblock::*, }; pub use bracket_color::prelude::*; pub use bracket_geometry::prelude::*; diff --git a/bracket-bevy/src/textblock.rs b/bracket-bevy/src/textblock.rs index 0e8b57c5..5f09ca4b 100644 --- a/bracket-bevy/src/textblock.rs +++ b/bracket-bevy/src/textblock.rs @@ -3,7 +3,7 @@ use bracket_geometry::prelude::{Point, Rect}; use std::cmp; use crate::{ - consoles::TerminalGlyph, cp437::string_to_cp437, BracketContext, DrawBatch, FontCharType, + BracketContext, DrawBatch, FontCharType, consoles::TerminalGlyph, cp437::string_to_cp437, }; pub struct TextBlock { diff --git a/bracket-color/Cargo.toml b/bracket-color/Cargo.toml index 3ed9ba0e..416acaf6 100755 --- a/bracket-color/Cargo.toml +++ b/bracket-color/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-color" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "RGB and HSV color handling and utilities, including lerp and W3C named colors. Part of the bracket-lib family." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-color/examples/colors.rs b/bracket-color/examples/colors.rs index f0590ce7..0432fedb 100755 --- a/bracket-color/examples/colors.rs +++ b/bracket-color/examples/colors.rs @@ -1,5 +1,5 @@ use bracket_color::prelude::*; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use util::print_color; fn main() { diff --git a/bracket-color/examples/lerp.rs b/bracket-color/examples/lerp.rs index 79cfe2ed..76dbd3aa 100755 --- a/bracket-color/examples/lerp.rs +++ b/bracket-color/examples/lerp.rs @@ -1,5 +1,5 @@ use bracket_color::prelude::*; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use util::print_color; fn main() { diff --git a/bracket-color/examples/lerpit.rs b/bracket-color/examples/lerpit.rs index 6e660bb9..bb4a601b 100755 --- a/bracket-color/examples/lerpit.rs +++ b/bracket-color/examples/lerpit.rs @@ -1,5 +1,5 @@ use bracket_color::prelude::*; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use util::print_color; fn main() { diff --git a/bracket-color/examples/lerpit_hsv.rs b/bracket-color/examples/lerpit_hsv.rs index 339f9cc2..c7c4a855 100755 --- a/bracket-color/examples/lerpit_hsv.rs +++ b/bracket-color/examples/lerpit_hsv.rs @@ -1,5 +1,5 @@ use bracket_color::prelude::*; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use util::print_color; fn main() { diff --git a/bracket-color/examples/named_color.rs b/bracket-color/examples/named_color.rs index 87565b35..08e16057 100755 --- a/bracket-color/examples/named_color.rs +++ b/bracket-color/examples/named_color.rs @@ -1,5 +1,5 @@ use bracket_color::prelude::*; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use util::print_color; fn main() { diff --git a/bracket-color/examples/shades_of_grey.rs b/bracket-color/examples/shades_of_grey.rs index 893d2be9..afa19d86 100755 --- a/bracket-color/examples/shades_of_grey.rs +++ b/bracket-color/examples/shades_of_grey.rs @@ -1,5 +1,5 @@ use bracket_color::prelude::*; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use util::print_color; fn main() { diff --git a/bracket-color/src/palette.rs b/bracket-color/src/palette.rs index 2968b9cb..cca2a873 100755 --- a/bracket-color/src/palette.rs +++ b/bracket-color/src/palette.rs @@ -1,94 +1,94 @@ use crate::named::{ - ALICEBLUE, ALICE_BLUE, ANTIQUEWHITE, ANTIQUEWHITE1, ANTIQUEWHITE2, ANTIQUEWHITE3, - ANTIQUEWHITE4, ANTIQUE_WHITE, AQUA, AQUAMARINE, AQUAMARINE1, AQUAMARINE2, AQUAMARINE3, + ALICE_BLUE, ALICEBLUE, ANTIQUE_WHITE, ANTIQUEWHITE, ANTIQUEWHITE1, ANTIQUEWHITE2, + ANTIQUEWHITE3, ANTIQUEWHITE4, AQUA, AQUAMARINE, AQUAMARINE1, AQUAMARINE2, AQUAMARINE3, AQUAMARINE4, AZURE, AZURE1, AZURE2, AZURE3, AZURE4, BEIGE, BISQUE, BISQUE1, BISQUE2, BISQUE3, - BISQUE4, BLACK, BLANCHEDALMOND, BLANCHED_ALMOND, BLUE, BLUE1, BLUE2, BLUE3, BLUE4, BLUEVIOLET, - BLUE_VIOLET, BROWN1, BROWN2, BROWN3, BROWN4, BROWN_42, BURLYWOOD, BURLYWOOD1, BURLYWOOD2, - BURLYWOOD3, BURLYWOOD4, CADETBLUE, CADETBLUE1, CADETBLUE2, CADETBLUE3, CADETBLUE4, CADET_BLUE, + BISQUE4, BLACK, BLANCHED_ALMOND, BLANCHEDALMOND, BLUE, BLUE_VIOLET, BLUE1, BLUE2, BLUE3, BLUE4, + BLUEVIOLET, BROWN_42, BROWN1, BROWN2, BROWN3, BROWN4, BURLYWOOD, BURLYWOOD1, BURLYWOOD2, + BURLYWOOD3, BURLYWOOD4, CADET_BLUE, CADETBLUE, CADETBLUE1, CADETBLUE2, CADETBLUE3, CADETBLUE4, CHARTREUSE, CHARTREUSE1, CHARTREUSE2, CHARTREUSE3, CHARTREUSE4, CHOCOLATE, CHOCOLATE1, - CHOCOLATE2, CHOCOLATE3, CHOCOLATE4, CORAL, CORAL1, CORAL2, CORAL3, CORAL4, CORNFLOWERBLUE, - CORNFLOWER_BLUE, CORNSILK, CORNSILK1, CORNSILK2, CORNSILK3, CORNSILK4, CRIMSON, CYAN, CYAN1, - CYAN2, CYAN3, CYAN4, DARKBLUE, DARKCYAN, DARKGOLDENROD, DARKGOLDENROD1, DARKGOLDENROD2, - DARKGOLDENROD3, DARKGOLDENROD4, DARKGRAY, DARKGREEN, DARKGREY, DARKKHAKI, DARKMAGENTA, - DARKOLIVEGREEN, DARKOLIVEGREEN1, DARKOLIVEGREEN2, DARKOLIVEGREEN3, DARKOLIVEGREEN4, DARKORANGE, - DARKORANGE1, DARKORANGE2, DARKORANGE3, DARKORANGE4, DARKORCHID, DARKORCHID1, DARKORCHID2, - DARKORCHID3, DARKORCHID4, DARKRED, DARKSALMON, DARKSEAGREEN, DARKSEAGREEN1, DARKSEAGREEN2, - DARKSEAGREEN3, DARKSEAGREEN4, DARKSLATEBLUE, DARKSLATEGRAY, DARKSLATEGRAY1, DARKSLATEGRAY2, - DARKSLATEGRAY3, DARKSLATEGRAY4, DARKSLATEGREY, DARKTURQUOISE, DARKVIOLET, DARK_BLUE, DARK_CYAN, - DARK_GOLDENROD, DARK_GRAY, DARK_GREEN, DARK_GREY, DARK_KHAKI, DARK_MAGENTA, DARK_OLIVE, - DARK_ORANGE, DARK_ORCHID, DARK_RED, DARK_SALMON, DARK_SEA, DARK_SLATE, DARK_TURQUOISE, - DARK_VIOLET, DEEPPINK, DEEPPINK1, DEEPPINK2, DEEPPINK3, DEEPPINK4, DEEPSKYBLUE, DEEPSKYBLUE1, - DEEPSKYBLUE2, DEEPSKYBLUE3, DEEPSKYBLUE4, DEEP_PINK, DEEP_SKY, DIMGRAY, DIMGREY, DIM_GRAY, - DIM_GREY, DODGERBLUE, DODGERBLUE1, DODGERBLUE2, DODGERBLUE3, DODGERBLUE4, DODGER_BLUE, - FIREBRICK1, FIREBRICK2, FIREBRICK3, FIREBRICK4, FIREBRICK_34, FLORALWHITE, FLORAL_WHITE, - FORESTGREEN, FOREST_GREEN, FUCHSIA, GAINSBORO, GHOSTWHITE, GHOST_WHITE, GOLD, GOLD1, GOLD2, + CHOCOLATE2, CHOCOLATE3, CHOCOLATE4, CORAL, CORAL1, CORAL2, CORAL3, CORAL4, CORNFLOWER_BLUE, + CORNFLOWERBLUE, CORNSILK, CORNSILK1, CORNSILK2, CORNSILK3, CORNSILK4, CRIMSON, CYAN, CYAN1, + CYAN2, CYAN3, CYAN4, DARK_BLUE, DARK_CYAN, DARK_GOLDENROD, DARK_GRAY, DARK_GREEN, DARK_GREY, + DARK_KHAKI, DARK_MAGENTA, DARK_OLIVE, DARK_ORANGE, DARK_ORCHID, DARK_RED, DARK_SALMON, + DARK_SEA, DARK_SLATE, DARK_TURQUOISE, DARK_VIOLET, DARKBLUE, DARKCYAN, DARKGOLDENROD, + DARKGOLDENROD1, DARKGOLDENROD2, DARKGOLDENROD3, DARKGOLDENROD4, DARKGRAY, DARKGREEN, DARKGREY, + DARKKHAKI, DARKMAGENTA, DARKOLIVEGREEN, DARKOLIVEGREEN1, DARKOLIVEGREEN2, DARKOLIVEGREEN3, + DARKOLIVEGREEN4, DARKORANGE, DARKORANGE1, DARKORANGE2, DARKORANGE3, DARKORANGE4, DARKORCHID, + DARKORCHID1, DARKORCHID2, DARKORCHID3, DARKORCHID4, DARKRED, DARKSALMON, DARKSEAGREEN, + DARKSEAGREEN1, DARKSEAGREEN2, DARKSEAGREEN3, DARKSEAGREEN4, DARKSLATEBLUE, DARKSLATEGRAY, + DARKSLATEGRAY1, DARKSLATEGRAY2, DARKSLATEGRAY3, DARKSLATEGRAY4, DARKSLATEGREY, DARKTURQUOISE, + DARKVIOLET, DEEP_PINK, DEEP_SKY, DEEPPINK, DEEPPINK1, DEEPPINK2, DEEPPINK3, DEEPPINK4, + DEEPSKYBLUE, DEEPSKYBLUE1, DEEPSKYBLUE2, DEEPSKYBLUE3, DEEPSKYBLUE4, DIM_GRAY, DIM_GREY, + DIMGRAY, DIMGREY, DODGER_BLUE, DODGERBLUE, DODGERBLUE1, DODGERBLUE2, DODGERBLUE3, DODGERBLUE4, + FIREBRICK_34, FIREBRICK1, FIREBRICK2, FIREBRICK3, FIREBRICK4, FLORAL_WHITE, FLORALWHITE, + FOREST_GREEN, FORESTGREEN, FUCHSIA, GAINSBORO, GHOST_WHITE, GHOSTWHITE, GOLD, GOLD1, GOLD2, GOLD3, GOLD4, GOLDENROD, GOLDENROD1, GOLDENROD2, GOLDENROD3, GOLDENROD4, GRAY, GRAY0, GRAY1, - GRAY10, GRAY100, GRAY11, GRAY12, GRAY13, GRAY14, GRAY15, GRAY16, GRAY17, GRAY18, GRAY19, GRAY2, - GRAY20, GRAY21, GRAY22, GRAY23, GRAY24, GRAY25, GRAY26, GRAY27, GRAY28, GRAY29, GRAY3, GRAY30, - GRAY31, GRAY32, GRAY33, GRAY34, GRAY35, GRAY36, GRAY37, GRAY38, GRAY39, GRAY4, GRAY40, GRAY41, - GRAY42, GRAY43, GRAY44, GRAY45, GRAY46, GRAY47, GRAY48, GRAY49, GRAY5, GRAY50, GRAY51, GRAY52, - GRAY53, GRAY54, GRAY55, GRAY56, GRAY57, GRAY58, GRAY59, GRAY6, GRAY60, GRAY61, GRAY62, GRAY63, - GRAY64, GRAY65, GRAY66, GRAY67, GRAY68, GRAY69, GRAY7, GRAY70, GRAY71, GRAY72, GRAY73, GRAY74, - GRAY75, GRAY76, GRAY77, GRAY78, GRAY79, GRAY8, GRAY80, GRAY81, GRAY82, GRAY83, GRAY84, GRAY85, - GRAY86, GRAY87, GRAY88, GRAY89, GRAY9, GRAY90, GRAY91, GRAY92, GRAY93, GRAY94, GRAY95, GRAY96, - GRAY97, GRAY98, GRAY99, GREEN, GREEN1, GREEN2, GREEN3, GREEN4, GREENYELLOW, GREEN_YELLOW, GREY, - GREY0, GREY1, GREY10, GREY100, GREY11, GREY12, GREY13, GREY14, GREY15, GREY16, GREY17, GREY18, - GREY19, GREY2, GREY20, GREY21, GREY22, GREY23, GREY24, GREY25, GREY26, GREY27, GREY28, GREY29, - GREY3, GREY30, GREY31, GREY32, GREY33, GREY34, GREY35, GREY36, GREY37, GREY38, GREY39, GREY4, - GREY40, GREY41, GREY42, GREY43, GREY44, GREY45, GREY46, GREY47, GREY48, GREY49, GREY5, GREY50, - GREY51, GREY52, GREY53, GREY54, GREY55, GREY56, GREY57, GREY58, GREY59, GREY6, GREY60, GREY61, - GREY62, GREY63, GREY64, GREY65, GREY66, GREY67, GREY68, GREY69, GREY7, GREY70, GREY71, GREY72, - GREY73, GREY74, GREY75, GREY76, GREY77, GREY78, GREY79, GREY8, GREY80, GREY81, GREY82, GREY83, - GREY84, GREY85, GREY86, GREY87, GREY88, GREY89, GREY9, GREY90, GREY91, GREY92, GREY93, GREY94, - GREY95, GREY96, GREY97, GREY98, GREY99, HONEYDEW, HONEYDEW1, HONEYDEW2, HONEYDEW3, HONEYDEW4, - HOTPINK, HOTPINK1, HOTPINK2, HOTPINK3, HOTPINK4, HOT_PINK, INDIANRED, INDIANRED1, INDIANRED2, - INDIANRED3, INDIANRED4, INDIAN_RED, INDIGO, IVORY, IVORY1, IVORY2, IVORY3, IVORY4, KHAKI, - KHAKI1, KHAKI2, KHAKI3, KHAKI4, LAVENDER, LAVENDERBLUSH, LAVENDERBLUSH1, LAVENDERBLUSH2, - LAVENDERBLUSH3, LAVENDERBLUSH4, LAVENDER_BLUSH, LAWNGREEN, LAWN_GREEN, LEMONCHIFFON, - LEMONCHIFFON1, LEMONCHIFFON2, LEMONCHIFFON3, LEMONCHIFFON4, LEMON_CHIFFON, LIGHTBLUE, - LIGHTBLUE1, LIGHTBLUE2, LIGHTBLUE3, LIGHTBLUE4, LIGHTCORAL, LIGHTCYAN, LIGHTCYAN1, LIGHTCYAN2, - LIGHTCYAN3, LIGHTCYAN4, LIGHTGOLDENROD, LIGHTGOLDENROD1, LIGHTGOLDENROD2, LIGHTGOLDENROD3, - LIGHTGOLDENROD4, LIGHTGOLDENRODYELLOW, LIGHTGRAY, LIGHTGREEN, LIGHTGREY, LIGHTPINK, LIGHTPINK1, - LIGHTPINK2, LIGHTPINK3, LIGHTPINK4, LIGHTSALMON, LIGHTSALMON1, LIGHTSALMON2, LIGHTSALMON3, - LIGHTSALMON4, LIGHTSEAGREEN, LIGHTSKYBLUE, LIGHTSKYBLUE1, LIGHTSKYBLUE2, LIGHTSKYBLUE3, - LIGHTSKYBLUE4, LIGHTSLATEBLUE, LIGHTSLATEGRAY, LIGHTSLATEGREY, LIGHTSTEELBLUE, LIGHTSTEELBLUE1, + GRAY2, GRAY3, GRAY4, GRAY5, GRAY6, GRAY7, GRAY8, GRAY9, GRAY10, GRAY11, GRAY12, GRAY13, GRAY14, + GRAY15, GRAY16, GRAY17, GRAY18, GRAY19, GRAY20, GRAY21, GRAY22, GRAY23, GRAY24, GRAY25, GRAY26, + GRAY27, GRAY28, GRAY29, GRAY30, GRAY31, GRAY32, GRAY33, GRAY34, GRAY35, GRAY36, GRAY37, GRAY38, + GRAY39, GRAY40, GRAY41, GRAY42, GRAY43, GRAY44, GRAY45, GRAY46, GRAY47, GRAY48, GRAY49, GRAY50, + GRAY51, GRAY52, GRAY53, GRAY54, GRAY55, GRAY56, GRAY57, GRAY58, GRAY59, GRAY60, GRAY61, GRAY62, + GRAY63, GRAY64, GRAY65, GRAY66, GRAY67, GRAY68, GRAY69, GRAY70, GRAY71, GRAY72, GRAY73, GRAY74, + GRAY75, GRAY76, GRAY77, GRAY78, GRAY79, GRAY80, GRAY81, GRAY82, GRAY83, GRAY84, GRAY85, GRAY86, + GRAY87, GRAY88, GRAY89, GRAY90, GRAY91, GRAY92, GRAY93, GRAY94, GRAY95, GRAY96, GRAY97, GRAY98, + GRAY99, GRAY100, GREEN, GREEN_YELLOW, GREEN1, GREEN2, GREEN3, GREEN4, GREENYELLOW, GREY, GREY0, + GREY1, GREY2, GREY3, GREY4, GREY5, GREY6, GREY7, GREY8, GREY9, GREY10, GREY11, GREY12, GREY13, + GREY14, GREY15, GREY16, GREY17, GREY18, GREY19, GREY20, GREY21, GREY22, GREY23, GREY24, GREY25, + GREY26, GREY27, GREY28, GREY29, GREY30, GREY31, GREY32, GREY33, GREY34, GREY35, GREY36, GREY37, + GREY38, GREY39, GREY40, GREY41, GREY42, GREY43, GREY44, GREY45, GREY46, GREY47, GREY48, GREY49, + GREY50, GREY51, GREY52, GREY53, GREY54, GREY55, GREY56, GREY57, GREY58, GREY59, GREY60, GREY61, + GREY62, GREY63, GREY64, GREY65, GREY66, GREY67, GREY68, GREY69, GREY70, GREY71, GREY72, GREY73, + GREY74, GREY75, GREY76, GREY77, GREY78, GREY79, GREY80, GREY81, GREY82, GREY83, GREY84, GREY85, + GREY86, GREY87, GREY88, GREY89, GREY90, GREY91, GREY92, GREY93, GREY94, GREY95, GREY96, GREY97, + GREY98, GREY99, GREY100, HONEYDEW, HONEYDEW1, HONEYDEW2, HONEYDEW3, HONEYDEW4, HOT_PINK, + HOTPINK, HOTPINK1, HOTPINK2, HOTPINK3, HOTPINK4, INDIAN_RED, INDIANRED, INDIANRED1, INDIANRED2, + INDIANRED3, INDIANRED4, INDIGO, IVORY, IVORY1, IVORY2, IVORY3, IVORY4, KHAKI, KHAKI1, KHAKI2, + KHAKI3, KHAKI4, LAVENDER, LAVENDER_BLUSH, LAVENDERBLUSH, LAVENDERBLUSH1, LAVENDERBLUSH2, + LAVENDERBLUSH3, LAVENDERBLUSH4, LAWN_GREEN, LAWNGREEN, LEMON_CHIFFON, LEMONCHIFFON, + LEMONCHIFFON1, LEMONCHIFFON2, LEMONCHIFFON3, LEMONCHIFFON4, LIGHT_BLUE, LIGHT_CORAL, + LIGHT_CYAN, LIGHT_GOLDENROD, LIGHT_GRAY, LIGHT_GREEN, LIGHT_GREY, LIGHT_PINK, LIGHT_SALMON, + LIGHT_SEA, LIGHT_SKY, LIGHT_SLATE, LIGHT_STEEL, LIGHT_YELLOW, LIGHTBLUE, LIGHTBLUE1, + LIGHTBLUE2, LIGHTBLUE3, LIGHTBLUE4, LIGHTCORAL, LIGHTCYAN, LIGHTCYAN1, LIGHTCYAN2, LIGHTCYAN3, + LIGHTCYAN4, LIGHTGOLDENROD, LIGHTGOLDENROD1, LIGHTGOLDENROD2, LIGHTGOLDENROD3, LIGHTGOLDENROD4, + LIGHTGOLDENRODYELLOW, LIGHTGRAY, LIGHTGREEN, LIGHTGREY, LIGHTPINK, LIGHTPINK1, LIGHTPINK2, + LIGHTPINK3, LIGHTPINK4, LIGHTSALMON, LIGHTSALMON1, LIGHTSALMON2, LIGHTSALMON3, LIGHTSALMON4, + LIGHTSEAGREEN, LIGHTSKYBLUE, LIGHTSKYBLUE1, LIGHTSKYBLUE2, LIGHTSKYBLUE3, LIGHTSKYBLUE4, + LIGHTSLATEBLUE, LIGHTSLATEGRAY, LIGHTSLATEGREY, LIGHTSTEELBLUE, LIGHTSTEELBLUE1, LIGHTSTEELBLUE2, LIGHTSTEELBLUE3, LIGHTSTEELBLUE4, LIGHTYELLOW, LIGHTYELLOW1, LIGHTYELLOW2, - LIGHTYELLOW3, LIGHTYELLOW4, LIGHT_BLUE, LIGHT_CORAL, LIGHT_CYAN, LIGHT_GOLDENROD, LIGHT_GRAY, - LIGHT_GREEN, LIGHT_GREY, LIGHT_PINK, LIGHT_SALMON, LIGHT_SEA, LIGHT_SKY, LIGHT_SLATE, - LIGHT_STEEL, LIGHT_YELLOW, LIME, LIMEGREEN, LIME_GREEN, LINEN, MAGENTA, MAGENTA1, MAGENTA2, - MAGENTA3, MAGENTA4, MAROON, MAROON1, MAROON2, MAROON3, MAROON4, MEDIUMAQUAMARINE, MEDIUMBLUE, - MEDIUMORCHID, MEDIUMORCHID1, MEDIUMORCHID2, MEDIUMORCHID3, MEDIUMORCHID4, MEDIUMPURPLE, - MEDIUMPURPLE1, MEDIUMPURPLE2, MEDIUMPURPLE3, MEDIUMPURPLE4, MEDIUMSEAGREEN, MEDIUMSLATEBLUE, - MEDIUMSPRINGGREEN, MEDIUMTURQUOISE, MEDIUMVIOLETRED, MEDIUM_AQUAMARINE, MEDIUM_BLUE, + LIGHTYELLOW3, LIGHTYELLOW4, LIME, LIME_GREEN, LIMEGREEN, LINEN, MAGENTA, MAGENTA1, MAGENTA2, + MAGENTA3, MAGENTA4, MAROON, MAROON1, MAROON2, MAROON3, MAROON4, MEDIUM_AQUAMARINE, MEDIUM_BLUE, MEDIUM_ORCHID, MEDIUM_PURPLE, MEDIUM_SEA, MEDIUM_SLATE, MEDIUM_SPRING, MEDIUM_TURQUOISE, - MEDIUM_VIOLET, MIDNIGHTBLUE, MIDNIGHT_BLUE, MINTCREAM, MINT_CREAM, MISTYROSE, MISTYROSE1, - MISTYROSE2, MISTYROSE3, MISTYROSE4, MISTY_ROSE, MOCCASIN, NAVAJOWHITE, NAVAJOWHITE1, - NAVAJOWHITE2, NAVAJOWHITE3, NAVAJOWHITE4, NAVAJO_WHITE, NAVY, NAVYBLUE, NAVY_BLUE, OLDLACE, - OLD_LACE, OLIVE, OLIVEDRAB, OLIVEDRAB1, OLIVEDRAB2, OLIVEDRAB3, OLIVEDRAB4, OLIVE_DRAB, ORANGE, - ORANGE1, ORANGE2, ORANGE3, ORANGE4, ORANGERED, ORANGERED1, ORANGERED2, ORANGERED3, ORANGERED4, - ORANGE_RED, ORCHID, ORCHID1, ORCHID2, ORCHID3, ORCHID4, PALEGOLDENROD, PALEGREEN, PALEGREEN1, - PALEGREEN2, PALEGREEN3, PALEGREEN4, PALETURQUOISE, PALETURQUOISE1, PALETURQUOISE2, - PALETURQUOISE3, PALETURQUOISE4, PALEVIOLETRED, PALEVIOLETRED1, PALEVIOLETRED2, PALEVIOLETRED3, - PALEVIOLETRED4, PALE_GOLDENROD, PALE_GREEN, PALE_TURQUOISE, PALE_VIOLET, PAPAYAWHIP, - PAPAYA_WHIP, PEACHPUFF, PEACHPUFF1, PEACHPUFF2, PEACHPUFF3, PEACHPUFF4, PEACH_PUFF, PERU, PINK, - PINK1, PINK2, PINK3, PINK4, PLUM, PLUM1, PLUM2, PLUM3, PLUM4, POWDERBLUE, POWDER_BLUE, PURPLE, - PURPLE1, PURPLE2, PURPLE3, PURPLE4, REBECCAPURPLE, REBECCA_PURPLE, RED, RED1, RED2, RED3, RED4, - ROSYBROWN, ROSYBROWN1, ROSYBROWN2, ROSYBROWN3, ROSYBROWN4, ROSY_BROWN, ROYALBLUE, ROYALBLUE1, - ROYALBLUE2, ROYALBLUE3, ROYALBLUE4, ROYAL_BLUE, SADDLEBROWN, SADDLE_BROWN, SALMON, SALMON1, - SALMON2, SALMON3, SALMON4, SANDYBROWN, SANDY_BROWN, SEAGREEN, SEAGREEN1, SEAGREEN2, SEAGREEN3, - SEAGREEN4, SEASHELL, SEASHELL1, SEASHELL2, SEASHELL3, SEASHELL4, SEA_GREEN, SIENNA, SIENNA1, - SIENNA2, SIENNA3, SIENNA4, SILVER, SKYBLUE, SKYBLUE1, SKYBLUE2, SKYBLUE3, SKYBLUE4, SKY_BLUE, - SLATEBLUE, SLATEBLUE1, SLATEBLUE2, SLATEBLUE3, SLATEBLUE4, SLATEGRAY, SLATEGRAY1, SLATEGRAY2, - SLATEGRAY3, SLATEGRAY4, SLATEGREY, SLATE_BLUE, SLATE_GRAY, SLATE_GREY, SNOW, SNOW1, SNOW2, - SNOW3, SNOW4, SPRINGGREEN, SPRINGGREEN1, SPRINGGREEN2, SPRINGGREEN3, SPRINGGREEN4, - SPRING_GREEN, STEELBLUE, STEELBLUE1, STEELBLUE2, STEELBLUE3, STEELBLUE4, STEEL_BLUE, TAN, TAN1, + MEDIUM_VIOLET, MEDIUMAQUAMARINE, MEDIUMBLUE, MEDIUMORCHID, MEDIUMORCHID1, MEDIUMORCHID2, + MEDIUMORCHID3, MEDIUMORCHID4, MEDIUMPURPLE, MEDIUMPURPLE1, MEDIUMPURPLE2, MEDIUMPURPLE3, + MEDIUMPURPLE4, MEDIUMSEAGREEN, MEDIUMSLATEBLUE, MEDIUMSPRINGGREEN, MEDIUMTURQUOISE, + MEDIUMVIOLETRED, MIDNIGHT_BLUE, MIDNIGHTBLUE, MINT_CREAM, MINTCREAM, MISTY_ROSE, MISTYROSE, + MISTYROSE1, MISTYROSE2, MISTYROSE3, MISTYROSE4, MOCCASIN, NAVAJO_WHITE, NAVAJOWHITE, + NAVAJOWHITE1, NAVAJOWHITE2, NAVAJOWHITE3, NAVAJOWHITE4, NAVY, NAVY_BLUE, NAVYBLUE, OLD_LACE, + OLDLACE, OLIVE, OLIVE_DRAB, OLIVEDRAB, OLIVEDRAB1, OLIVEDRAB2, OLIVEDRAB3, OLIVEDRAB4, ORANGE, + ORANGE_RED, ORANGE1, ORANGE2, ORANGE3, ORANGE4, ORANGERED, ORANGERED1, ORANGERED2, ORANGERED3, + ORANGERED4, ORCHID, ORCHID1, ORCHID2, ORCHID3, ORCHID4, PALE_GOLDENROD, PALE_GREEN, + PALE_TURQUOISE, PALE_VIOLET, PALEGOLDENROD, PALEGREEN, PALEGREEN1, PALEGREEN2, PALEGREEN3, + PALEGREEN4, PALETURQUOISE, PALETURQUOISE1, PALETURQUOISE2, PALETURQUOISE3, PALETURQUOISE4, + PALEVIOLETRED, PALEVIOLETRED1, PALEVIOLETRED2, PALEVIOLETRED3, PALEVIOLETRED4, PAPAYA_WHIP, + PAPAYAWHIP, PEACH_PUFF, PEACHPUFF, PEACHPUFF1, PEACHPUFF2, PEACHPUFF3, PEACHPUFF4, PERU, PINK, + PINK1, PINK2, PINK3, PINK4, PLUM, PLUM1, PLUM2, PLUM3, PLUM4, POWDER_BLUE, POWDERBLUE, PURPLE, + PURPLE1, PURPLE2, PURPLE3, PURPLE4, REBECCA_PURPLE, REBECCAPURPLE, RED, RED1, RED2, RED3, RED4, + ROSY_BROWN, ROSYBROWN, ROSYBROWN1, ROSYBROWN2, ROSYBROWN3, ROSYBROWN4, ROYAL_BLUE, ROYALBLUE, + ROYALBLUE1, ROYALBLUE2, ROYALBLUE3, ROYALBLUE4, SADDLE_BROWN, SADDLEBROWN, SALMON, SALMON1, + SALMON2, SALMON3, SALMON4, SANDY_BROWN, SANDYBROWN, SEA_GREEN, SEAGREEN, SEAGREEN1, SEAGREEN2, + SEAGREEN3, SEAGREEN4, SEASHELL, SEASHELL1, SEASHELL2, SEASHELL3, SEASHELL4, SIENNA, SIENNA1, + SIENNA2, SIENNA3, SIENNA4, SILVER, SKY_BLUE, SKYBLUE, SKYBLUE1, SKYBLUE2, SKYBLUE3, SKYBLUE4, + SLATE_BLUE, SLATE_GRAY, SLATE_GREY, SLATEBLUE, SLATEBLUE1, SLATEBLUE2, SLATEBLUE3, SLATEBLUE4, + SLATEGRAY, SLATEGRAY1, SLATEGRAY2, SLATEGRAY3, SLATEGRAY4, SLATEGREY, SNOW, SNOW1, SNOW2, + SNOW3, SNOW4, SPRING_GREEN, SPRINGGREEN, SPRINGGREEN1, SPRINGGREEN2, SPRINGGREEN3, + SPRINGGREEN4, STEEL_BLUE, STEELBLUE, STEELBLUE1, STEELBLUE2, STEELBLUE3, STEELBLUE4, TAN, TAN1, TAN2, TAN3, TAN4, TEAL, THISTLE, THISTLE1, THISTLE2, THISTLE3, THISTLE4, TOMATO, TOMATO1, TOMATO2, TOMATO3, TOMATO4, TURQUOISE, TURQUOISE1, TURQUOISE2, TURQUOISE3, TURQUOISE4, VIOLET, - VIOLETRED, VIOLETRED1, VIOLETRED2, VIOLETRED3, VIOLETRED4, VIOLET_RED, WEBGRAY, WEBGREEN, - WEBGREY, WEBMAROON, WEBPURPLE, WEB_GRAY, WEB_GREEN, WEB_GREY, WEB_MAROON, WEB_PURPLE, WHEAT, - WHEAT1, WHEAT2, WHEAT3, WHEAT4, WHITE, WHITESMOKE, WHITE_SMOKE, X11GRAY, X11GREEN, X11GREY, - X11MAROON, X11PURPLE, X11_GRAY, X11_GREEN, X11_GREY, X11_MAROON, X11_PURPLE, YELLOW, YELLOW1, - YELLOW2, YELLOW3, YELLOW4, YELLOWGREEN, YELLOW_GREEN, + VIOLET_RED, VIOLETRED, VIOLETRED1, VIOLETRED2, VIOLETRED3, VIOLETRED4, WEB_GRAY, WEB_GREEN, + WEB_GREY, WEB_MAROON, WEB_PURPLE, WEBGRAY, WEBGREEN, WEBGREY, WEBMAROON, WEBPURPLE, WHEAT, + WHEAT1, WHEAT2, WHEAT3, WHEAT4, WHITE, WHITE_SMOKE, WHITESMOKE, X11_GRAY, X11_GREEN, X11_GREY, + X11_MAROON, X11_PURPLE, X11GRAY, X11GREEN, X11GREY, X11MAROON, X11PURPLE, YELLOW, YELLOW_GREEN, + YELLOW1, YELLOW2, YELLOW3, YELLOW4, YELLOWGREEN, }; use crate::prelude::RGBA; use parking_lot::Mutex; diff --git a/bracket-color/src/rgb.rs b/bracket-color/src/rgb.rs index 92188abe..a514c441 100755 --- a/bracket-color/src/rgb.rs +++ b/bracket-color/src/rgb.rs @@ -1,4 +1,4 @@ -use crate::prelude::{XpColor, HSV, RGBA}; +use crate::prelude::{HSV, RGBA, XpColor}; use std::convert::From; use std::ops; diff --git a/bracket-color/src/rgba.rs b/bracket-color/src/rgba.rs index ed58a841..8eb77b80 100755 --- a/bracket-color/src/rgba.rs +++ b/bracket-color/src/rgba.rs @@ -1,4 +1,4 @@ -use crate::prelude::{HtmlColorConversionError, HSV, RGB}; +use crate::prelude::{HSV, HtmlColorConversionError, RGB}; use std::convert::From; use std::ops; diff --git a/bracket-embedding/Cargo.toml b/bracket-embedding/Cargo.toml index ccbce62f..27c811ca 100644 --- a/bracket-embedding/Cargo.toml +++ b/bracket-embedding/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "bracket-embedding" version = "0.8.7" -edition = "2021" +edition = "2024" publish = true description = "Provides resource embedding services for bracket-lib" homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-geometry/Cargo.toml b/bracket-geometry/Cargo.toml index e175a739..7cdc9e7f 100644 --- a/bracket-geometry/Cargo.toml +++ b/bracket-geometry/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-geometry" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "Geometry utilities. Rect, lines, circles, distance calculations. Part of the bracket-lib family." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-geometry/examples/bresenham_circle.rs b/bracket-geometry/examples/bresenham_circle.rs index 72f79bf8..dd0960ea 100755 --- a/bracket-geometry/examples/bresenham_circle.rs +++ b/bracket-geometry/examples/bresenham_circle.rs @@ -1,7 +1,7 @@ use bracket_geometry::prelude::*; use crossterm::queue; use crossterm::style::Print; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn main() { let mut fake_console: Vec = vec!['.'; 100]; diff --git a/bracket-geometry/examples/bresenham_line.rs b/bracket-geometry/examples/bresenham_line.rs index 7f2dd4e1..3c942ce8 100755 --- a/bracket-geometry/examples/bresenham_line.rs +++ b/bracket-geometry/examples/bresenham_line.rs @@ -1,7 +1,7 @@ use bracket_geometry::prelude::*; use crossterm::queue; use crossterm::style::Print; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn main() { let mut fake_console: Vec = vec!['.'; 100]; diff --git a/bracket-geometry/examples/bresenham_sweep.rs b/bracket-geometry/examples/bresenham_sweep.rs index 2f884013..6da97111 100755 --- a/bracket-geometry/examples/bresenham_sweep.rs +++ b/bracket-geometry/examples/bresenham_sweep.rs @@ -1,7 +1,7 @@ use bracket_geometry::prelude::*; use crossterm::style::Print; use crossterm::{cursor, queue}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn main() { let mut angle = Degrees::new(0.0); diff --git a/bracket-geometry/examples/vector_line.rs b/bracket-geometry/examples/vector_line.rs index 79854ad0..15b4bbe9 100755 --- a/bracket-geometry/examples/vector_line.rs +++ b/bracket-geometry/examples/vector_line.rs @@ -1,7 +1,7 @@ use bracket_geometry::prelude::*; use crossterm::queue; use crossterm::style::Print; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn main() { let mut fake_console: Vec = vec!['.'; 100]; diff --git a/bracket-geometry/src/angles.rs b/bracket-geometry/src/angles.rs index ccd09a98..1bda5ff0 100755 --- a/bracket-geometry/src/angles.rs +++ b/bracket-geometry/src/angles.rs @@ -17,7 +17,7 @@ where #[cfg(test)] mod tests { - use crate::prelude::{project_angle, Degrees, Point, Radians}; + use crate::prelude::{Degrees, Point, Radians, project_angle}; #[test] fn test_project_angle() { diff --git a/bracket-geometry/src/lines.rs b/bracket-geometry/src/lines.rs index f51ee764..22457cfe 100755 --- a/bracket-geometry/src/lines.rs +++ b/bracket-geometry/src/lines.rs @@ -67,7 +67,7 @@ pub fn line2d_vector(start: Point, end: Point) -> Vec { #[cfg(test)] mod tests { - use crate::prelude::{line2d_bresenham, line2d_vector, Point}; + use crate::prelude::{Point, line2d_bresenham, line2d_vector}; #[test] fn vector_line_h() { diff --git a/bracket-noise/Cargo.toml b/bracket-noise/Cargo.toml index fce36069..5ec4647a 100755 --- a/bracket-noise/Cargo.toml +++ b/bracket-noise/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-noise" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "Rust port of Auburn's amazing FastNoise library. Part of the bracket-lib family." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-noise/examples/cellular.rs b/bracket-noise/examples/cellular.rs index 0bc3ceb7..2595dca8 100755 --- a/bracket-noise/examples/cellular.rs +++ b/bracket-noise/examples/cellular.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/perlin_fractal.rs b/bracket-noise/examples/perlin_fractal.rs index ab7767ea..764028de 100755 --- a/bracket-noise/examples/perlin_fractal.rs +++ b/bracket-noise/examples/perlin_fractal.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/simplex_billow_quintic.rs b/bracket-noise/examples/simplex_billow_quintic.rs index a161dc3a..1a4481ca 100755 --- a/bracket-noise/examples/simplex_billow_quintic.rs +++ b/bracket-noise/examples/simplex_billow_quintic.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/simplex_fractal.rs b/bracket-noise/examples/simplex_fractal.rs index 63af1700..5848eb48 100755 --- a/bracket-noise/examples/simplex_fractal.rs +++ b/bracket-noise/examples/simplex_fractal.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/simplex_rigid_hermite.rs b/bracket-noise/examples/simplex_rigid_hermite.rs index 5286d951..374a6efd 100755 --- a/bracket-noise/examples/simplex_rigid_hermite.rs +++ b/bracket-noise/examples/simplex_rigid_hermite.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/value.rs b/bracket-noise/examples/value.rs index a2fdcaa9..5d03aa27 100755 --- a/bracket-noise/examples/value.rs +++ b/bracket-noise/examples/value.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/value_fractal.rs b/bracket-noise/examples/value_fractal.rs index 2dcb6019..6a305171 100755 --- a/bracket-noise/examples/value_fractal.rs +++ b/bracket-noise/examples/value_fractal.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/examples/whitenoise.rs b/bracket-noise/examples/whitenoise.rs index b0345c8c..ce554d13 100755 --- a/bracket-noise/examples/whitenoise.rs +++ b/bracket-noise/examples/whitenoise.rs @@ -4,7 +4,7 @@ use bracket_random::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; fn print_color(color: RGB, text: &str) { queue!( diff --git a/bracket-noise/src/fastnoise.rs b/bracket-noise/src/fastnoise.rs index 6054583f..87c78a36 100755 --- a/bracket-noise/src/fastnoise.rs +++ b/bracket-noise/src/fastnoise.rs @@ -1685,11 +1685,7 @@ const CUBIC_2D_BOUNDING: f32 = 1.0 / 1.5 * 1.5; // Utility functions fn fast_floor(f: f32) -> i32 { - if f >= 0.0 { - f as i32 - } else { - f as i32 - 1 - } + if f >= 0.0 { f as i32 } else { f as i32 - 1 } } fn fast_round(f: f32) -> i32 { @@ -3010,11 +3006,7 @@ impl FastNoise { #[allow(dead_code)] fn greater_1_0(&self, n: i32, greater_than: i32) -> i32 { - if n >= greater_than { - 1 - } else { - 0 - } + if n >= greater_than { 1 } else { 0 } } #[allow(dead_code)] diff --git a/bracket-pathfinding/Cargo.toml b/bracket-pathfinding/Cargo.toml index e46ca50b..59b8df99 100755 --- a/bracket-pathfinding/Cargo.toml +++ b/bracket-pathfinding/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-pathfinding" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "Pathfinding and field-of view utilities. A Star, Dijkstra. Part of the bracket-lib family." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-pathfinding/benches/astar_benchmark.rs b/bracket-pathfinding/benches/astar_benchmark.rs index 3acfa578..454fed47 100755 --- a/bracket-pathfinding/benches/astar_benchmark.rs +++ b/bracket-pathfinding/benches/astar_benchmark.rs @@ -3,7 +3,7 @@ // Benchmark field of view calculations, // most of the code copied from ex04-fov.rs -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; use std::hint::black_box; use bracket_pathfinding::prelude::*; diff --git a/bracket-pathfinding/benches/fov_benchmark.rs b/bracket-pathfinding/benches/fov_benchmark.rs index deda39ce..76b88a51 100755 --- a/bracket-pathfinding/benches/fov_benchmark.rs +++ b/bracket-pathfinding/benches/fov_benchmark.rs @@ -3,7 +3,7 @@ // Benchmark field of view calculations, // most of the code copied from ex04-fov.rs -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; use std::hint::black_box; use bracket_pathfinding::prelude::*; diff --git a/bracket-pathfinding/examples/astar/common.rs b/bracket-pathfinding/examples/astar/common.rs index 51775798..7e2f4a27 100755 --- a/bracket-pathfinding/examples/astar/common.rs +++ b/bracket-pathfinding/examples/astar/common.rs @@ -2,7 +2,7 @@ use bracket_color::prelude::*; use bracket_pathfinding::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; // Console Support diff --git a/bracket-pathfinding/examples/astar_manhattan/common.rs b/bracket-pathfinding/examples/astar_manhattan/common.rs index c937f334..90de9b7f 100755 --- a/bracket-pathfinding/examples/astar_manhattan/common.rs +++ b/bracket-pathfinding/examples/astar_manhattan/common.rs @@ -2,7 +2,7 @@ use bracket_color::prelude::*; use bracket_pathfinding::prelude::*; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; // Console Support diff --git a/bracket-pathfinding/examples/dijkstra/common.rs b/bracket-pathfinding/examples/dijkstra/common.rs index 66cda13c..a70ddeda 100755 --- a/bracket-pathfinding/examples/dijkstra/common.rs +++ b/bracket-pathfinding/examples/dijkstra/common.rs @@ -3,7 +3,7 @@ use bracket_pathfinding::prelude::*; use bracket_random::prelude::RandomNumberGenerator; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; // Console Support diff --git a/bracket-pathfinding/examples/dijkstra/main.rs b/bracket-pathfinding/examples/dijkstra/main.rs index e9aedf3d..27b3d69e 100755 --- a/bracket-pathfinding/examples/dijkstra/main.rs +++ b/bracket-pathfinding/examples/dijkstra/main.rs @@ -28,11 +28,7 @@ fn main() { 0, 255 - { let n = flow_map.map[idx] * 6.0; - if n > 255.0 { - 255.0 - } else { - n - } + if n > 255.0 { 255.0 } else { n } } as u8, 0, ) diff --git a/bracket-pathfinding/examples/dijkstra_weighted/common.rs b/bracket-pathfinding/examples/dijkstra_weighted/common.rs index 66cda13c..a70ddeda 100644 --- a/bracket-pathfinding/examples/dijkstra_weighted/common.rs +++ b/bracket-pathfinding/examples/dijkstra_weighted/common.rs @@ -3,7 +3,7 @@ use bracket_pathfinding::prelude::*; use bracket_random::prelude::RandomNumberGenerator; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; // Console Support diff --git a/bracket-pathfinding/examples/dijkstra_weighted/main.rs b/bracket-pathfinding/examples/dijkstra_weighted/main.rs index decb6e6c..88f92b6d 100644 --- a/bracket-pathfinding/examples/dijkstra_weighted/main.rs +++ b/bracket-pathfinding/examples/dijkstra_weighted/main.rs @@ -37,11 +37,7 @@ fn main() { 0, 255 - { let n = flow_map.map[idx] * 12.0; - if n > 255.0 { - 255.0 - } else { - n - } + if n > 255.0 { 255.0 } else { n } } as u8, 0, ) diff --git a/bracket-pathfinding/examples/fov/common.rs b/bracket-pathfinding/examples/fov/common.rs index abc81a91..4a4f6e5c 100755 --- a/bracket-pathfinding/examples/fov/common.rs +++ b/bracket-pathfinding/examples/fov/common.rs @@ -3,7 +3,7 @@ use bracket_pathfinding::prelude::*; use bracket_random::prelude::RandomNumberGenerator; use crossterm::queue; use crossterm::style::{Color::Rgb, Print, SetForegroundColor}; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; // Console Support diff --git a/bracket-pathfinding/src/astar.rs b/bracket-pathfinding/src/astar.rs index e685ab39..d3d09283 100755 --- a/bracket-pathfinding/src/astar.rs +++ b/bracket-pathfinding/src/astar.rs @@ -114,10 +114,10 @@ impl AStar { // If a node with the same position as successor is in the open list with a lower f, skip add let mut should_add = true; - if let Some(e) = self.parents.get(&idx) { - if e.1 < s.g { - should_add = false; - } + if let Some(e) = self.parents.get(&idx) + && e.1 < s.g + { + should_add = false; } // If a node with the same position as successor is in the closed list, with a lower f, skip add diff --git a/bracket-pathfinding/src/field_of_view/mod.rs b/bracket-pathfinding/src/field_of_view/mod.rs index 15140e80..550c78b9 100644 --- a/bracket-pathfinding/src/field_of_view/mod.rs +++ b/bracket-pathfinding/src/field_of_view/mod.rs @@ -219,9 +219,11 @@ mod tests { for point in FieldOfViewAlg::SymmetricShadowcasting.field_of_view_set(c, radius, &map) { // Symmetry only holds for transparent tiles if !map.tiles[point.to_index(TESTMAP_W)] { - assert!(FieldOfViewAlg::SymmetricShadowcasting - .field_of_view_set(point, radius, &map) - .contains(&c)); + assert!( + FieldOfViewAlg::SymmetricShadowcasting + .field_of_view_set(point, radius, &map) + .contains(&c) + ); } } } diff --git a/bracket-pathfinding/src/field_of_view/symmetric_shadowcasting.rs b/bracket-pathfinding/src/field_of_view/symmetric_shadowcasting.rs index 9036983b..96b248b0 100644 --- a/bracket-pathfinding/src/field_of_view/symmetric_shadowcasting.rs +++ b/bracket-pathfinding/src/field_of_view/symmetric_shadowcasting.rs @@ -117,11 +117,12 @@ impl FovScanner<'_, T> { fn scan(&mut self, first_line: Scanline) { let mut stack = vec![first_line]; let mut prev_tile; - while let Some(mut scanline) = stack.pop() { + while let Some(scanline) = stack.pop() { if scanline.depth * scanline.depth > self.radius_2 { continue; } prev_tile = None; + let mut current_start_slope = scanline.start_slope; for tile in scanline.tiles() { let tile_point = self.quadrant.transform(tile); let dx = tile_point.x - self.quadrant.origin.x; @@ -132,10 +133,11 @@ impl FovScanner<'_, T> { } if let Some(prev_tile) = prev_tile { if self.is_opaque(prev_tile) && !self.is_opaque(tile) { - scanline.start_slope = slope(tile); + current_start_slope = slope(tile); } if !self.is_opaque(prev_tile) && self.is_opaque(tile) { let mut next_line = scanline.next(); + next_line.start_slope = current_start_slope; next_line.end_slope = slope(tile); stack.push(next_line); } @@ -143,10 +145,12 @@ impl FovScanner<'_, T> { prev_tile = Some(tile); } } - if let Some(prev_tile) = prev_tile { - if !self.is_opaque(prev_tile) { - stack.push(scanline.next()); - } + if let Some(prev_tile) = prev_tile + && !self.is_opaque(prev_tile) + { + let mut next_line = scanline.next(); + next_line.start_slope = current_start_slope; + stack.push(next_line); } } } @@ -202,3 +206,88 @@ pub fn field_of_view( .into_iter() .collect() } + +#[cfg(test)] +mod tests { + use crate::field_of_view::symmetric_shadowcasting::{Cardinal, FovScanner, Quadrant, Scanline}; + use bracket_algorithm_traits::prelude::{Algorithm2D, BaseMap}; + use bracket_geometry::prelude::Point; + use num_rational::Rational32; + + const MAP_W: i32 = 11; + const MAP_H: i32 = 11; + + struct TestMap { + tiles: Vec, + } + + impl TestMap { + fn new() -> Self { + Self { + tiles: vec![false; (MAP_W * MAP_H) as usize], + } + } + + fn set_opaque(&mut self, point: Point) { + let idx = self.point2d_to_index(point); + self.tiles[idx] = true; + } + } + + impl BaseMap for TestMap { + fn is_opaque(&self, idx: usize) -> bool { + self.tiles[idx] + } + } + + impl Algorithm2D for TestMap { + fn dimensions(&self) -> Point { + Point::new(MAP_W, MAP_H) + } + } + + fn scan_north_quadrant( + map: &TestMap, + origin: Point, + radius: i32, + ) -> std::collections::HashSet { + let radius_2 = radius * radius; + let radius_plus_half = Rational32::from_integer(radius) + Rational32::new(1, 2); + let radius_plus_half_2 = radius_plus_half * radius_plus_half; + let mut visible_points = std::collections::HashSet::new(); + let mut scanner = FovScanner { + radius_2, + radius_plus_half_2, + quadrant: Quadrant::new(Cardinal::North, origin), + fov_check: map, + visible_points: &mut visible_points, + }; + scanner.scan(Scanline::with_integers(1, -1, 1)); + visible_points + } + + #[test] + fn north_scan_continues_when_last_tile_is_transparent() { + let map = TestMap::new(); + let origin = Point::new(5, 5); + + let visible = scan_north_quadrant(&map, origin, 4); + + assert!(visible.contains(&Point::new(5, 2))); + } + + #[test] + fn north_scan_narrows_after_opaque_to_transparent_transition() { + let mut map = TestMap::new(); + let origin = Point::new(5, 5); + + // Depth 1, column -1 in the north quadrant. + map.set_opaque(Point::new(4, 4)); + let visible = scan_north_quadrant(&map, origin, 5); + + // Depth 2, column -2 should remain hidden behind the blocked segment. + assert!(!visible.contains(&Point::new(3, 3))); + // Depth 2, column -1 should still be visible through the opening. + assert!(visible.contains(&Point::new(4, 3))); + } +} diff --git a/bracket-pathfinding/src/lib.rs b/bracket-pathfinding/src/lib.rs index ba2e767a..a1956b38 100755 --- a/bracket-pathfinding/src/lib.rs +++ b/bracket-pathfinding/src/lib.rs @@ -12,5 +12,5 @@ pub mod prelude { pub use bracket_geometry::prelude::*; /// Since we use `SmallVec`, it's only polite to export it so you don't have to have multiple copies. - pub use smallvec::{smallvec, SmallVec}; + pub use smallvec::{SmallVec, smallvec}; } diff --git a/bracket-random/Cargo.toml b/bracket-random/Cargo.toml index 58d93f87..9b08ea9c 100644 --- a/bracket-random/Cargo.toml +++ b/bracket-random/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-random" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "Random number generator (ChaCha based), focused on dice rolling. Optionally includes parsing of RPG-style dice strings (e.g. \"3d6+12\"). Part of the bracket-lib family." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-random/benches/dice.rs b/bracket-random/benches/dice.rs index 69ff52f3..b76670bf 100755 --- a/bracket-random/benches/dice.rs +++ b/bracket-random/benches/dice.rs @@ -2,7 +2,7 @@ // Benchmark field of geometry calculations -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; use std::hint::black_box; pub fn criterion_benchmark(c: &mut Criterion) { diff --git a/bracket-random/src/parsing.rs b/bracket-random/src/parsing.rs index 6d8a4300..c3c93a7b 100755 --- a/bracket-random/src/parsing.rs +++ b/bracket-random/src/parsing.rs @@ -97,7 +97,7 @@ pub fn parse_dice_string(dice: &str) -> Result { #[cfg(test)] mod tests { - use super::{parse_dice_string, DiceType}; + use super::{DiceType, parse_dice_string}; #[test] fn parse_1d6() { diff --git a/bracket-random/src/random.rs b/bracket-random/src/random.rs index 8ad9f4ab..e65fb491 100755 --- a/bracket-random/src/random.rs +++ b/bracket-random/src/random.rs @@ -1,6 +1,6 @@ #[cfg(feature = "parsing")] -use crate::prelude::{parse_dice_string, DiceParseError, DiceType}; -use rand::{rngs::SysRng, Rng, RngExt, SeedableRng}; +use crate::prelude::{DiceParseError, DiceType, parse_dice_string}; +use rand::{Rng, RngExt, SeedableRng, rngs::SysRng}; use rand_chacha::ChaCha12Rng; #[cfg(feature = "serde")] diff --git a/bracket-rex/Cargo.toml b/bracket-rex/Cargo.toml index 54d3f286..3d376920 100644 --- a/bracket-rex/Cargo.toml +++ b/bracket-rex/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "bracket-rex" version = "0.8.7" -edition = "2021" +edition = "2024" publish = true description = "Load/save REX Paint files and utilize them in bracket-terminal projects." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-rex/src/rex.rs b/bracket-rex/src/rex.rs index a13044c2..db78b3ec 100644 --- a/bracket-rex/src/rex.rs +++ b/bracket-rex/src/rex.rs @@ -12,9 +12,9 @@ use std::io; use std::io::prelude::*; use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt}; +use flate2::Compression; use flate2::read::GzDecoder; use flate2::write::GzEncoder; -use flate2::Compression; use crate::prelude::XpColor; diff --git a/bracket-terminal/Cargo.toml b/bracket-terminal/Cargo.toml index a7927059..5f607991 100644 --- a/bracket-terminal/Cargo.toml +++ b/bracket-terminal/Cargo.toml @@ -2,7 +2,7 @@ name = "bracket-terminal" version = "0.8.7" authors = ["Herbert Wolverson "] -edition = "2021" +edition = "2024" publish = true description = "ASCII/Codepage 437 terminal emulator with a game loop. Defaults to OpenGL, also support WebGPU (for Vulkan/Metal/WGPU), Curses and Crossterm for output. Part of the bracket-lib family." homepage = "https://github.com/thebracket/bracket-lib" diff --git a/bracket-terminal/benches/batching_benchmark.rs b/bracket-terminal/benches/batching_benchmark.rs index 8dc51448..c26cd8c1 100755 --- a/bracket-terminal/benches/batching_benchmark.rs +++ b/bracket-terminal/benches/batching_benchmark.rs @@ -2,7 +2,7 @@ // Benchmark field of geometry calculations -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; pub fn criterion_benchmark(c: &mut Criterion) { use bracket_terminal::prelude::*; diff --git a/bracket-terminal/examples/dungeon_postman.rs b/bracket-terminal/examples/dungeon_postman.rs index 6d0ac580..a5349404 100644 --- a/bracket-terminal/examples/dungeon_postman.rs +++ b/bracket-terminal/examples/dungeon_postman.rs @@ -547,15 +547,15 @@ impl State { } } - if let Some(kpos) = self.key_pos { - if self.map.visible[kpos] { - let (kx, ky) = xy(kpos); - draw_batch.print_color( - Point::new(kx, ky), - "k", - ColorPair::new(RGB::from_f32(1.0, 0.85, 0.0), RGB::named(BLACK)), - ); - } + if let Some(kpos) = self.key_pos + && self.map.visible[kpos] + { + let (kx, ky) = xy(kpos); + draw_batch.print_color( + Point::new(kx, ky), + "k", + ColorPair::new(RGB::from_f32(1.0, 0.85, 0.0), RGB::named(BLACK)), + ); } let (px, py) = xy(self.player_pos); diff --git a/bracket-terminal/examples/sparse_cls.rs b/bracket-terminal/examples/sparse_cls.rs index b1155747..9ab71a37 100755 --- a/bracket-terminal/examples/sparse_cls.rs +++ b/bracket-terminal/examples/sparse_cls.rs @@ -1,4 +1,4 @@ -use bracket_terminal::prelude::{main_loop, BTerm, BTermBuilder, GameState, VirtualKeyCode, RGBA}; +use bracket_terminal::prelude::{BTerm, BTermBuilder, GameState, RGBA, VirtualKeyCode, main_loop}; const USE_WORKAROUND: bool = false; fn main() { diff --git a/bracket-terminal/examples/squishy.rs b/bracket-terminal/examples/squishy.rs index 82638c55..225a8de3 100755 --- a/bracket-terminal/examples/squishy.rs +++ b/bracket-terminal/examples/squishy.rs @@ -60,10 +60,10 @@ impl GameState for State { self.width += 1; self.width %= 200; ctx.set_char_size(self.width, 45); - if let Some(key) = ctx.key { - if key == VirtualKeyCode::W { - ctx.set_char_size_and_resize_window(self.width, 45); - } + if let Some(key) = ctx.key + && key == VirtualKeyCode::W + { + ctx.set_char_size_and_resize_window(self.width, 45); } } } diff --git a/bracket-terminal/src/bterm.rs b/bracket-terminal/src/bterm.rs index 86b48e2d..b21b4ca3 100755 --- a/bracket-terminal/src/bterm.rs +++ b/bracket-terminal/src/bterm.rs @@ -1,12 +1,12 @@ #![allow(dead_code)] #[allow(unused_imports)] use crate::{ + BResult, prelude::{ - init_raw, BEvent, CharacterTranslationMode, Console, FlexiConsole, Font, FontCharType, - GameState, InitHints, Radians, RenderSprite, Shader, SimpleConsole, SpriteConsole, - SpriteSheet, TextAlign, VirtualKeyCode, BACKEND, INPUT, + BACKEND, BEvent, CharacterTranslationMode, Console, FlexiConsole, Font, FontCharType, + GameState, INPUT, InitHints, Radians, RenderSprite, Shader, SimpleConsole, SpriteConsole, + SpriteSheet, TextAlign, VirtualKeyCode, init_raw, }, - BResult, }; use bracket_color::prelude::RGBA; use bracket_geometry::prelude::{Point, PointF, Rect}; diff --git a/bracket-terminal/src/consoles/command_buffer.rs b/bracket-terminal/src/consoles/command_buffer.rs index ae7b221c..826f5e07 100755 --- a/bracket-terminal/src/consoles/command_buffer.rs +++ b/bracket-terminal/src/consoles/command_buffer.rs @@ -2,8 +2,8 @@ // designed to be used safely from within ECS systems in a potentially // multi-threaded environment. -use crate::prelude::{BTerm, FontCharType, TextAlign}; use crate::BResult; +use crate::prelude::{BTerm, FontCharType, TextAlign}; use bracket_color::prelude::{ColorPair, RGBA}; use bracket_geometry::prelude::{Point, PointF, Radians, Rect}; use object_pool::{Pool, Reusable}; diff --git a/bracket-terminal/src/consoles/flexible_console.rs b/bracket-terminal/src/consoles/flexible_console.rs index ee465158..d260595f 100755 --- a/bracket-terminal/src/consoles/flexible_console.rs +++ b/bracket-terminal/src/consoles/flexible_console.rs @@ -1,6 +1,6 @@ use crate::prelude::{ - string_to_cp437, to_cp437, CharacterTranslationMode, ColoredTextSpans, Console, FontCharType, - TextAlign, + CharacterTranslationMode, ColoredTextSpans, Console, FontCharType, TextAlign, string_to_cp437, + to_cp437, }; use bracket_color::prelude::RGBA; use bracket_geometry::prelude::{PointF, Rect}; diff --git a/bracket-terminal/src/consoles/simple_console.rs b/bracket-terminal/src/consoles/simple_console.rs index 6219f42a..b5e31a94 100755 --- a/bracket-terminal/src/consoles/simple_console.rs +++ b/bracket-terminal/src/consoles/simple_console.rs @@ -1,6 +1,6 @@ use crate::prelude::{ - string_to_cp437, to_cp437, CharacterTranslationMode, ColoredTextSpans, Console, FontCharType, - TextAlign, Tile, + CharacterTranslationMode, ColoredTextSpans, Console, FontCharType, TextAlign, Tile, + string_to_cp437, to_cp437, }; use bracket_color::prelude::*; use bracket_geometry::prelude::Rect; diff --git a/bracket-terminal/src/consoles/sparse_console.rs b/bracket-terminal/src/consoles/sparse_console.rs index 9a200076..066b7b09 100755 --- a/bracket-terminal/src/consoles/sparse_console.rs +++ b/bracket-terminal/src/consoles/sparse_console.rs @@ -1,6 +1,6 @@ use crate::prelude::{ - string_to_cp437, to_cp437, CharacterTranslationMode, ColoredTextSpans, Console, FontCharType, - TextAlign, + CharacterTranslationMode, ColoredTextSpans, Console, FontCharType, TextAlign, string_to_cp437, + to_cp437, }; use bracket_color::prelude::RGBA; use bracket_geometry::prelude::Rect; diff --git a/bracket-terminal/src/consoles/text/gui_helpers.rs b/bracket-terminal/src/consoles/text/gui_helpers.rs index 96cbffb2..5050b8b6 100755 --- a/bracket-terminal/src/consoles/text/gui_helpers.rs +++ b/bracket-terminal/src/consoles/text/gui_helpers.rs @@ -1,4 +1,4 @@ -use crate::prelude::{to_cp437, Console}; +use crate::prelude::{Console, to_cp437}; use bracket_color::prelude::RGBA; /// Draws a box, starting at x/y with the extents width/height using CP437 line characters diff --git a/bracket-terminal/src/consoles/text/multi_tile_sprite.rs b/bracket-terminal/src/consoles/text/multi_tile_sprite.rs index b343eafa..c43c6edf 100755 --- a/bracket-terminal/src/consoles/text/multi_tile_sprite.rs +++ b/bracket-terminal/src/consoles/text/multi_tile_sprite.rs @@ -1,4 +1,4 @@ -use crate::prelude::{string_to_cp437, BTerm, DrawBatch, FontCharType, Tile}; +use crate::prelude::{BTerm, DrawBatch, FontCharType, Tile, string_to_cp437}; use bracket_color::prelude::{ColorPair, RGBA}; use bracket_geometry::prelude::Point; use bracket_rex::prelude::XpFile; diff --git a/bracket-terminal/src/consoles/text/textblock.rs b/bracket-terminal/src/consoles/text/textblock.rs index ff6716d4..02db1a24 100755 --- a/bracket-terminal/src/consoles/text/textblock.rs +++ b/bracket-terminal/src/consoles/text/textblock.rs @@ -1,4 +1,4 @@ -use crate::prelude::{string_to_cp437, Console, DrawBatch, FontCharType, Tile}; +use crate::prelude::{Console, DrawBatch, FontCharType, Tile, string_to_cp437}; use bracket_color::prelude::{ColorPair, RGB, RGBA}; use bracket_geometry::prelude::{Point, Rect}; use std::cmp; diff --git a/bracket-terminal/src/consoles/virtual_console.rs b/bracket-terminal/src/consoles/virtual_console.rs index c4f4f1ee..b953b8a4 100755 --- a/bracket-terminal/src/consoles/virtual_console.rs +++ b/bracket-terminal/src/consoles/virtual_console.rs @@ -2,8 +2,8 @@ //! which can then be "windowed" into actual consoles. use crate::prelude::{ - string_to_cp437, to_cp437, BTerm, CharacterTranslationMode, ColoredTextSpans, Console, - DrawBatch, FontCharType, TextAlign, Tile, + BTerm, CharacterTranslationMode, ColoredTextSpans, Console, DrawBatch, FontCharType, TextAlign, + Tile, string_to_cp437, to_cp437, }; use bracket_color::prelude::*; use bracket_geometry::prelude::{Point, Rect}; diff --git a/bracket-terminal/src/hal/crossterm_be/init.rs b/bracket-terminal/src/hal/crossterm_be/init.rs index 9a235574..a5c38082 100755 --- a/bracket-terminal/src/hal/crossterm_be/init.rs +++ b/bracket-terminal/src/hal/crossterm_be/init.rs @@ -1,11 +1,11 @@ -use super::{InitHints, BACKEND}; -use crate::prelude::BTerm; +use super::{BACKEND, InitHints}; use crate::BResult; +use crate::prelude::BTerm; use crossterm::{ execute, - terminal::{size, SetSize}, + terminal::{SetSize, size}, }; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; pub fn init_raw( width_pixels: u32, diff --git a/bracket-terminal/src/hal/crossterm_be/main_loop.rs b/bracket-terminal/src/hal/crossterm_be/main_loop.rs index 94444252..a6a388e8 100755 --- a/bracket-terminal/src/hal/crossterm_be/main_loop.rs +++ b/bracket-terminal/src/hal/crossterm_be/main_loop.rs @@ -1,19 +1,19 @@ use super::keycode_to_key; -use super::{virtual_key_code_to_scan, BACKEND}; +use super::{BACKEND, virtual_key_code_to_scan}; use crate::consoles::Console; use crate::prelude::{ - to_char, BEvent, BTerm, GameState, SimpleConsole, SparseConsole, VirtualKeyCode, - BACKEND_INTERNAL, + BACKEND_INTERNAL, BEvent, BTerm, GameState, SimpleConsole, SparseConsole, VirtualKeyCode, + to_char, }; -use crate::{clear_input_state, BResult}; +use crate::{BResult, clear_input_state}; use bracket_color::prelude::*; -use crossterm::event::{poll, read, Event}; +use crossterm::event::{Event, poll, read}; use crossterm::execute; use crossterm::style::Print; use crossterm::terminal::SetSize; use crossterm::{cursor, queue}; use std::collections::HashSet; -use std::io::{stdout, Write}; +use std::io::{Write, stdout}; use std::time::Duration; use std::time::Instant; diff --git a/bracket-terminal/src/hal/curses/main_loop.rs b/bracket-terminal/src/hal/curses/main_loop.rs index 68b37a00..b32a144d 100755 --- a/bracket-terminal/src/hal/curses/main_loop.rs +++ b/bracket-terminal/src/hal/curses/main_loop.rs @@ -2,9 +2,9 @@ use super::char_to_keycode; use super::*; use crate::hal::VirtualKeyCode; use crate::prelude::{ - to_char, BEvent, BTerm, GameState, SimpleConsole, SparseConsole, BACKEND_INTERNAL, RGBA, + BACKEND_INTERNAL, BEvent, BTerm, GameState, RGBA, SimpleConsole, SparseConsole, to_char, }; -use crate::{clear_input_state, BResult}; +use crate::{BResult, clear_input_state}; use pancurses::endwin; use std::collections::HashSet; use std::convert::TryInto; diff --git a/bracket-terminal/src/hal/curses/mod.rs b/bracket-terminal/src/hal/curses/mod.rs index 2ed9c515..e198caaf 100755 --- a/bracket-terminal/src/hal/curses/mod.rs +++ b/bracket-terminal/src/hal/curses/mod.rs @@ -1,6 +1,6 @@ // Dummy platform to let it compile and do nothing. Only useful if you don't want a graphical backend. -use crate::prelude::BTerm; use crate::BResult; +use crate::prelude::BTerm; use parking_lot::Mutex; pub use winit::event::VirtualKeyCode; diff --git a/bracket-terminal/src/hal/gl_common/backing/fancy_console_backing.rs b/bracket-terminal/src/hal/gl_common/backing/fancy_console_backing.rs index a762ff44..cde96d33 100755 --- a/bracket-terminal/src/hal/gl_common/backing/fancy_console_backing.rs +++ b/bracket-terminal/src/hal/gl_common/backing/fancy_console_backing.rs @@ -1,7 +1,7 @@ +use crate::BResult; use crate::hal::scaler::FontScaler; -use crate::hal::{Font, Shader, VertexArray, VertexArrayEntry, BACKEND}; +use crate::hal::{BACKEND, Font, Shader, VertexArray, VertexArrayEntry}; use crate::prelude::FlexiTile; -use crate::BResult; use bracket_color::prelude::RGBA; use bracket_geometry::prelude::PointF; diff --git a/bracket-terminal/src/hal/gl_common/backing/shared_main_loop.rs b/bracket-terminal/src/hal/gl_common/backing/shared_main_loop.rs index 4284613d..22cea976 100755 --- a/bracket-terminal/src/hal/gl_common/backing/shared_main_loop.rs +++ b/bracket-terminal/src/hal/gl_common/backing/shared_main_loop.rs @@ -1,10 +1,10 @@ +use crate::BResult; use crate::hal::scaler::FontScaler; use crate::hal::{ - ConsoleBacking, FancyConsoleBackend, SimpleConsoleBackend, SparseConsoleBackend, - SpriteConsoleBackend, BACKEND, CONSOLE_BACKING, + BACKEND, CONSOLE_BACKING, ConsoleBacking, FancyConsoleBackend, SimpleConsoleBackend, + SparseConsoleBackend, SpriteConsoleBackend, }; -use crate::prelude::{FlexiConsole, SimpleConsole, SparseConsole, SpriteConsole, BACKEND_INTERNAL}; -use crate::BResult; +use crate::prelude::{BACKEND_INTERNAL, FlexiConsole, SimpleConsole, SparseConsole, SpriteConsole}; pub(crate) fn check_console_backing() { let mut be = BACKEND.lock(); diff --git a/bracket-terminal/src/hal/gl_common/backing/simple_console_backing.rs b/bracket-terminal/src/hal/gl_common/backing/simple_console_backing.rs index 55350c06..eff5339a 100755 --- a/bracket-terminal/src/hal/gl_common/backing/simple_console_backing.rs +++ b/bracket-terminal/src/hal/gl_common/backing/simple_console_backing.rs @@ -1,7 +1,7 @@ +use crate::BResult; use crate::hal::scaler::FontScaler; -use crate::hal::{Font, Shader, VertexArray, VertexArrayEntry, BACKEND}; +use crate::hal::{BACKEND, Font, Shader, VertexArray, VertexArrayEntry}; use crate::prelude::Tile; -use crate::BResult; use bracket_color::prelude::RGBA; pub struct SimpleConsoleBackend { @@ -88,14 +88,13 @@ impl SimpleConsoleBackend { needs_resize: bool, font_scaler: FontScaler, ) { - if !needs_resize { - if let Some(old) = &self.previous_console { - if old.len() == tiles.len() { - let no_change = tiles.iter().zip(old.iter()).all(|(a, b)| *a == *b); - if no_change { - return; - } - } + if !needs_resize + && let Some(old) = &self.previous_console + && old.len() == tiles.len() + { + let no_change = tiles.iter().zip(old.iter()).all(|(a, b)| *a == *b); + if no_change { + return; } } diff --git a/bracket-terminal/src/hal/gl_common/backing/sparse_console_backing.rs b/bracket-terminal/src/hal/gl_common/backing/sparse_console_backing.rs index 3e5f77ac..e3a9ef8c 100755 --- a/bracket-terminal/src/hal/gl_common/backing/sparse_console_backing.rs +++ b/bracket-terminal/src/hal/gl_common/backing/sparse_console_backing.rs @@ -1,7 +1,7 @@ +use crate::BResult; use crate::hal::scaler::FontScaler; -use crate::hal::{Font, Shader, VertexArray, VertexArrayEntry, BACKEND}; +use crate::hal::{BACKEND, Font, Shader, VertexArray, VertexArrayEntry}; use crate::prelude::SparseTile; -use crate::BResult; use bracket_color::prelude::RGBA; pub struct SparseConsoleBackend { @@ -65,14 +65,13 @@ impl SparseConsoleBackend { font_scaler: FontScaler, needs_resize: bool, ) { - if !needs_resize { - if let Some(old) = &self.previous_console { - if old.len() == tiles.len() { - let no_change = tiles.iter().zip(old.iter()).all(|(a, b)| *a == *b); - if no_change { - return; - } - } + if !needs_resize + && let Some(old) = &self.previous_console + && old.len() == tiles.len() + { + let no_change = tiles.iter().zip(old.iter()).all(|(a, b)| *a == *b); + if no_change { + return; } } diff --git a/bracket-terminal/src/hal/gl_common/backing/sprite_console_backing.rs b/bracket-terminal/src/hal/gl_common/backing/sprite_console_backing.rs index 0260d165..ab1683f8 100755 --- a/bracket-terminal/src/hal/gl_common/backing/sprite_console_backing.rs +++ b/bracket-terminal/src/hal/gl_common/backing/sprite_console_backing.rs @@ -1,6 +1,6 @@ +use crate::BResult; use crate::hal::{Font, Shader, VertexArray, VertexArrayEntry}; use crate::prelude::{RenderSprite, SpriteSheet}; -use crate::BResult; use bracket_color::prelude::RGBA; pub struct SpriteConsoleBackend { diff --git a/bracket-terminal/src/hal/gl_common/font.rs b/bracket-terminal/src/hal/gl_common/font.rs index 36b10fe0..300e9ec7 100755 --- a/bracket-terminal/src/hal/gl_common/font.rs +++ b/bracket-terminal/src/hal/gl_common/font.rs @@ -1,4 +1,4 @@ -use super::{gl_error, TextureId}; +use super::{TextureId, gl_error}; use crate::BResult; use bracket_color::prelude::RGB; use bracket_embedding::prelude::EMBED; diff --git a/bracket-terminal/src/hal/gl_common/framebuffer.rs b/bracket-terminal/src/hal/gl_common/framebuffer.rs index 738c6294..892730ed 100755 --- a/bracket-terminal/src/hal/gl_common/framebuffer.rs +++ b/bracket-terminal/src/hal/gl_common/framebuffer.rs @@ -1,9 +1,9 @@ +#[cfg(not(target_arch = "wasm32"))] +use super::{FramebufferId, TextureId}; #[allow(unused_imports)] use crate::BResult; use glow::HasContext; -use super::{FramebufferId, TextureId}; - #[cfg(not(target_arch = "wasm32"))] pub struct Framebuffer { fbo: FramebufferId, diff --git a/bracket-terminal/src/hal/gl_common/quadrender.rs b/bracket-terminal/src/hal/gl_common/quadrender.rs index 31fe027d..d8829f4d 100755 --- a/bracket-terminal/src/hal/gl_common/quadrender.rs +++ b/bracket-terminal/src/hal/gl_common/quadrender.rs @@ -50,6 +50,7 @@ pub fn setup_quad(gl: &glow::Context) -> VertexArrayId { /// Sets up a simple VAO/VBO to render a single quad /// Used for presenting the backing buffer and in post-process chains. +#[cfg(not(target_arch = "wasm32"))] pub fn setup_quad_gutter( gl: &glow::Context, left: f32, diff --git a/bracket-terminal/src/hal/gl_common/shader.rs b/bracket-terminal/src/hal/gl_common/shader.rs index 51855fb7..bf682e89 100755 --- a/bracket-terminal/src/hal/gl_common/shader.rs +++ b/bracket-terminal/src/hal/gl_common/shader.rs @@ -1,4 +1,4 @@ -use super::{gl_error, ShaderId}; +use super::{ShaderId, gl_error}; use crate::console::log; use glow::HasContext; use std::str; @@ -60,7 +60,7 @@ impl Shader { /// activate the shader /// ------------------------------------------------------------------------ pub unsafe fn useProgram(&self, gl: &glow::Context) { - gl.use_program(Some(self.ID)); + unsafe { gl.use_program(Some(self.ID)) }; gl_error(gl); } @@ -69,56 +69,66 @@ impl Shader { /// utility uniform functions /// ------------------------------------------------------------------------ pub unsafe fn setBool(&self, gl: &glow::Context, name: &str, value: bool) { - gl.uniform_1_i32( - gl.get_uniform_location(self.ID, name).as_ref(), - value as i32, - ); + unsafe { + gl.uniform_1_i32( + gl.get_uniform_location(self.ID, name).as_ref(), + value as i32, + ) + }; } #[allow(non_snake_case)] #[allow(clippy::missing_safety_doc)] /// ------------------------------------------------------------------------ pub unsafe fn setInt(&self, gl: &glow::Context, name: &str, value: i32) { - gl.uniform_1_i32(gl.get_uniform_location(self.ID, name).as_ref(), value); + unsafe { gl.uniform_1_i32(gl.get_uniform_location(self.ID, name).as_ref(), value) }; } #[allow(non_snake_case)] #[allow(clippy::missing_safety_doc)] /// ------------------------------------------------------------------------ pub unsafe fn setFloat(&self, gl: &glow::Context, name: &str, value: f32) { - gl.uniform_1_f32(gl.get_uniform_location(self.ID, name).as_ref(), value); + unsafe { gl.uniform_1_f32(gl.get_uniform_location(self.ID, name).as_ref(), value) }; } #[allow(non_snake_case)] #[allow(clippy::missing_safety_doc)] /// ------------------------------------------------------------------------ pub unsafe fn setVector3(&self, gl: &glow::Context, name: &str, value: &Vec3) { - gl.uniform_3_f32( - gl.get_uniform_location(self.ID, name).as_ref(), - value.x, - value.y, - value.z, - ); + unsafe { + gl.uniform_3_f32( + gl.get_uniform_location(self.ID, name).as_ref(), + value.x, + value.y, + value.z, + ) + }; } #[allow(non_snake_case)] #[allow(clippy::missing_safety_doc)] /// ------------------------------------------------------------------------ pub unsafe fn setVec3(&self, gl: &glow::Context, name: &str, x: f32, y: f32, z: f32) { - gl.uniform_3_f32(gl.get_uniform_location(self.ID, name).as_ref(), x, y, z); + unsafe { gl.uniform_3_f32(gl.get_uniform_location(self.ID, name).as_ref(), x, y, z) }; } #[allow(non_snake_case)] #[allow(clippy::missing_safety_doc)] /// ------------------------------------------------------------------------ pub unsafe fn setVec2(&self, gl: &glow::Context, name: &str, x: f32, y: f32) { - gl.uniform_2_f32(gl.get_uniform_location(self.ID, name).as_ref(), x, y); + unsafe { gl.uniform_2_f32(gl.get_uniform_location(self.ID, name).as_ref(), x, y) }; } #[allow(non_snake_case)] #[allow(clippy::missing_safety_doc)] /// ------------------------------------------------------------------------ pub unsafe fn setMat4(&self, gl: &glow::Context, name: &str, mat: &[f32; 16]) { - gl.uniform_matrix_4_f32_slice(gl.get_uniform_location(self.ID, name).as_ref(), false, mat); + unsafe { + gl.uniform_matrix_4_f32_slice( + gl.get_uniform_location(self.ID, name).as_ref(), + false, + mat, + ) + }; } } diff --git a/bracket-terminal/src/hal/gl_common/types_wasm.rs b/bracket-terminal/src/hal/gl_common/types_wasm.rs index 0cf64b83..66da7153 100755 --- a/bracket-terminal/src/hal/gl_common/types_wasm.rs +++ b/bracket-terminal/src/hal/gl_common/types_wasm.rs @@ -2,4 +2,5 @@ pub type TextureId = glow::WebTextureKey; pub type BufferId = glow::WebBufferKey; pub type VertexArrayId = glow::WebVertexArrayKey; pub type ShaderId = glow::WebProgramKey; +#[cfg(not(target_arch = "wasm32"))] pub type FramebufferId = glow::WebFramebufferKey; diff --git a/bracket-terminal/src/hal/native/init.rs b/bracket-terminal/src/hal/native/init.rs index 380cb798..e68dcb46 100755 --- a/bracket-terminal/src/hal/native/init.rs +++ b/bracket-terminal/src/hal/native/init.rs @@ -1,9 +1,9 @@ use super::BACKEND; -use crate::hal::native::{shader_strings, WrappedContext}; -use crate::hal::scaler::ScreenScaler; -use crate::hal::{setup_quad, Framebuffer, Shader}; -use crate::prelude::{BTerm, InitHints, BACKEND_INTERNAL}; use crate::BResult; +use crate::hal::native::{WrappedContext, shader_strings}; +use crate::hal::scaler::ScreenScaler; +use crate::hal::{Framebuffer, Shader, setup_quad}; +use crate::prelude::{BACKEND_INTERNAL, BTerm, InitHints}; use glow::HasContext; use glutin::{ config::{ConfigSurfaceTypes, ConfigTemplateBuilder}, diff --git a/bracket-terminal/src/hal/native/mainloop.rs b/bracket-terminal/src/hal/native/mainloop.rs index d821d1a7..13f1d0f4 100755 --- a/bracket-terminal/src/hal/native/mainloop.rs +++ b/bracket-terminal/src/hal/native/mainloop.rs @@ -1,8 +1,8 @@ use super::BACKEND; use crate::gl_error_wrap; use crate::hal::*; -use crate::prelude::{BEvent, BTerm, GameState, BACKEND_INTERNAL, INPUT}; -use crate::{clear_input_state, BResult}; +use crate::prelude::{BACKEND_INTERNAL, BEvent, BTerm, GameState, INPUT}; +use crate::{BResult, clear_input_state}; use bracket_geometry::prelude::Point; use glow::HasContext; use glutin::surface::GlSurface; @@ -280,11 +280,11 @@ pub fn main_loop(mut bterm: BTerm, mut gamestate: GS) -> BResult< if let Some(key) = physical_key_to_virtual_keycode(&event.physical_key) { bterm.on_key(key, 0, event.state == ElementState::Pressed); } - if event.state == ElementState::Pressed { - if let Some(text) = event.text.as_ref() { - for ch in text.chars() { - bterm.on_event(BEvent::Character { c: ch }); - } + if event.state == ElementState::Pressed + && let Some(text) = event.text.as_ref() + { + for ch in text.chars() { + bterm.on_event(BEvent::Character { c: ch }); } } } diff --git a/bracket-terminal/src/hal/native/mod.rs b/bracket-terminal/src/hal/native/mod.rs index 3677c0d2..59b7d410 100755 --- a/bracket-terminal/src/hal/native/mod.rs +++ b/bracket-terminal/src/hal/native/mod.rs @@ -5,8 +5,8 @@ pub use init::*; #[path = "../dummy/keycodes.rs"] mod keycodes; mod mainloop; -use crate::hal::scaler::{default_gutter_size, ScreenScaler}; use crate::hal::ConsoleBacking; +use crate::hal::scaler::{ScreenScaler, default_gutter_size}; pub use keycodes::VirtualKeyCode; pub use mainloop::*; use parking_lot::Mutex; diff --git a/bracket-terminal/src/hal/scaler.rs b/bracket-terminal/src/hal/scaler.rs index 6573cece..ba0525f2 100644 --- a/bracket-terminal/src/hal/scaler.rs +++ b/bracket-terminal/src/hal/scaler.rs @@ -7,7 +7,7 @@ pub(crate) fn default_gutter_size() -> u32 { 8 } -#[cfg(not(any(target_os = "windows", target_os = "macos")))] +#[cfg(not(any(target_os = "windows", target_os = "macos", target_arch = "wasm32")))] pub(crate) fn default_gutter_size() -> u32 { // Testing showed that an 8-pixel gutter is enough to fix // Big Sur and Windows 11. diff --git a/bracket-terminal/src/hal/wasm/events/external.rs b/bracket-terminal/src/hal/wasm/events/external.rs index 67db85af..95039ac6 100755 --- a/bracket-terminal/src/hal/wasm/events/external.rs +++ b/bracket-terminal/src/hal/wasm/events/external.rs @@ -1,7 +1,7 @@ +use wasm_bindgen::JsCast; /// This module handles binding external web elements, for example movement buttons. /// Based heavily on Zireael07's pull request, but modified to be significantly more generic. use wasm_bindgen::prelude::*; -use wasm_bindgen::JsCast; pub static mut GLOBAL_BUTTON: Option = None; diff --git a/bracket-terminal/src/hal/wasm/events/mod.rs b/bracket-terminal/src/hal/wasm/events/mod.rs index 6b4f4128..d950b221 100755 --- a/bracket-terminal/src/hal/wasm/events/mod.rs +++ b/bracket-terminal/src/hal/wasm/events/mod.rs @@ -4,8 +4,8 @@ mod mouse; pub use mouse::*; mod external; pub use external::*; -use wasm_bindgen::prelude::*; use wasm_bindgen::JsCast; +use wasm_bindgen::prelude::*; pub fn bind_wasm_events(canvas: &web_sys::HtmlCanvasElement) { // Handle keyboard input diff --git a/bracket-terminal/src/hal/wasm/init.rs b/bracket-terminal/src/hal/wasm/init.rs index 26f86451..ad0670eb 100755 --- a/bracket-terminal/src/hal/wasm/init.rs +++ b/bracket-terminal/src/hal/wasm/init.rs @@ -1,5 +1,5 @@ -use crate::prelude::{BTerm, InitHints, BACKEND_INTERNAL}; use crate::BResult; +use crate::prelude::{BACKEND_INTERNAL, BTerm, InitHints}; pub fn init_raw( width_pixels: u32, diff --git a/bracket-terminal/src/hal/wasm/mainloop.rs b/bracket-terminal/src/hal/wasm/mainloop.rs index e9cdb2da..142ef04d 100755 --- a/bracket-terminal/src/hal/wasm/mainloop.rs +++ b/bracket-terminal/src/hal/wasm/mainloop.rs @@ -1,8 +1,8 @@ use super::events::*; use super::*; use crate::hal::*; -use crate::prelude::{BTerm, GameState, BACKEND_INTERNAL}; -use crate::{clear_input_state, BResult}; +use crate::prelude::{BACKEND_INTERNAL, BTerm, GameState}; +use crate::{BResult, clear_input_state}; use glow::HasContext; use std::cell::RefCell; use std::rc::Rc; @@ -52,7 +52,7 @@ pub fn main_loop(mut bterm: BTerm, mut gamestate: GS) -> BResult< bterm.shift = GLOBAL_MODIFIERS.0; bterm.control = GLOBAL_MODIFIERS.1; bterm.alt = GLOBAL_MODIFIERS.2; - bterm.web_button = GLOBAL_BUTTON.clone(); + bterm.web_button = std::ptr::replace(std::ptr::addr_of_mut!(GLOBAL_BUTTON), None); bterm.on_mouse_position(GLOBAL_MOUSE_POS.0 as f64, GLOBAL_MOUSE_POS.1 as f64); } diff --git a/bracket-terminal/src/hal/wasm/mod.rs b/bracket-terminal/src/hal/wasm/mod.rs index b1979a70..5931dfa2 100755 --- a/bracket-terminal/src/hal/wasm/mod.rs +++ b/bracket-terminal/src/hal/wasm/mod.rs @@ -7,8 +7,11 @@ pub use init::*; mod events; pub use events::*; mod mainloop; -use crate::hal::scaler::{default_gutter_size, ScreenScaler}; use crate::hal::ConsoleBacking; +#[cfg(target_arch = "wasm32")] +use crate::hal::scaler::ScreenScaler; +#[cfg(not(target_arch = "wasm32"))] +use crate::hal::scaler::{ScreenScaler, default_gutter_size}; pub use mainloop::*; use parking_lot::Mutex; use std::any::Any; diff --git a/bracket-terminal/src/hal/webgpu/backend.rs b/bracket-terminal/src/hal/webgpu/backend.rs index 734c1786..59800fe0 100644 --- a/bracket-terminal/src/hal/webgpu/backend.rs +++ b/bracket-terminal/src/hal/webgpu/backend.rs @@ -1,6 +1,6 @@ //! Defines the BACKEND static used by wgpu. -use crate::hal::{scaler::ScreenScaler, ConsoleBacking, PlatformGL}; +use crate::hal::{ConsoleBacking, PlatformGL, scaler::ScreenScaler}; use lazy_static::*; use parking_lot::Mutex; diff --git a/bracket-terminal/src/hal/webgpu/backing/fancy_console_backing.rs b/bracket-terminal/src/hal/webgpu/backing/fancy_console_backing.rs index dde16d4d..d1474989 100644 --- a/bracket-terminal/src/hal/webgpu/backing/fancy_console_backing.rs +++ b/bracket-terminal/src/hal/webgpu/backing/fancy_console_backing.rs @@ -2,12 +2,12 @@ use super::index_array_helper::IndexBuffer; use super::vertex_array_helper::FloatBuffer; +use crate::BResult; use crate::hal::{ - scaler::{FontScaler, ScreenScaler}, Font, Shader, WgpuLink, + scaler::{FontScaler, ScreenScaler}, }; use crate::prelude::FlexiTile; -use crate::BResult; use bracket_color::prelude::RGBA; use bracket_geometry::prelude::PointF; use wgpu::{BufferUsages, RenderPipeline}; diff --git a/bracket-terminal/src/hal/webgpu/backing/simple_console_backing.rs b/bracket-terminal/src/hal/webgpu/backing/simple_console_backing.rs index e1bae9e7..4c079c75 100644 --- a/bracket-terminal/src/hal/webgpu/backing/simple_console_backing.rs +++ b/bracket-terminal/src/hal/webgpu/backing/simple_console_backing.rs @@ -2,12 +2,12 @@ use super::index_array_helper::IndexBuffer; use super::vertex_array_helper::FloatBuffer; +use crate::BResult; use crate::hal::{ - scaler::{FontScaler, ScreenScaler}, Font, Shader, WgpuLink, + scaler::{FontScaler, ScreenScaler}, }; use crate::prelude::Tile; -use crate::BResult; use bracket_color::prelude::RGBA; use wgpu::{BufferUsages, RenderPipeline}; diff --git a/bracket-terminal/src/hal/webgpu/backing/sparse_console_backing.rs b/bracket-terminal/src/hal/webgpu/backing/sparse_console_backing.rs index dc897996..23389032 100644 --- a/bracket-terminal/src/hal/webgpu/backing/sparse_console_backing.rs +++ b/bracket-terminal/src/hal/webgpu/backing/sparse_console_backing.rs @@ -1,12 +1,12 @@ //! Provides a wgpu mapping to the sparse consoele use super::index_array_helper::IndexBuffer; use super::vertex_array_helper::FloatBuffer; +use crate::BResult; use crate::hal::{ - scaler::{FontScaler, ScreenScaler}, Font, Shader, WgpuLink, + scaler::{FontScaler, ScreenScaler}, }; use crate::prelude::SparseTile; -use crate::BResult; use bracket_color::prelude::RGBA; use wgpu::{BufferUsages, RenderPipeline}; diff --git a/bracket-terminal/src/hal/webgpu/backing/sprite_console_backing.rs b/bracket-terminal/src/hal/webgpu/backing/sprite_console_backing.rs index d74b2fc0..add9a29a 100644 --- a/bracket-terminal/src/hal/webgpu/backing/sprite_console_backing.rs +++ b/bracket-terminal/src/hal/webgpu/backing/sprite_console_backing.rs @@ -1,9 +1,9 @@ //! Sprite console mapping for wgpu use super::index_array_helper::IndexBuffer; use super::vertex_array_helper::FloatBuffer; +use crate::BResult; use crate::hal::{Font, Shader, WgpuLink}; use crate::prelude::{RenderSprite, SpriteSheet}; -use crate::BResult; use bracket_color::prelude::RGBA; use wgpu::{BufferUsages, RenderPipeline}; diff --git a/bracket-terminal/src/hal/webgpu/init.rs b/bracket-terminal/src/hal/webgpu/init.rs index 095ea868..b48c9b5f 100644 --- a/bracket-terminal/src/hal/webgpu/init.rs +++ b/bracket-terminal/src/hal/webgpu/init.rs @@ -1,16 +1,12 @@ //! WGPU Initialization Service -use super::{InitHints, Shader, WgpuLink, WrappedContext, BACKEND}; +use super::{BACKEND, InitHints, Shader, WgpuLink, WrappedContext}; use crate::{ - gamestate::BTerm, hal::scaler::ScreenScaler, hal::Framebuffer, prelude::BACKEND_INTERNAL, - BResult, + BResult, gamestate::BTerm, hal::Framebuffer, hal::scaler::ScreenScaler, + prelude::BACKEND_INTERNAL, }; use wgpu::{Adapter, Device, Instance, Queue, Surface, SurfaceConfiguration}; -use winit::{ - dpi::LogicalSize, - event_loop::EventLoop, - window::{Window, WindowBuilder}, -}; +use winit::{dpi::LogicalSize, event_loop::EventLoop, window::Window}; pub fn init_raw( width_pixels: u32, @@ -19,12 +15,13 @@ pub fn init_raw( platform_hints: InitHints, ) -> BResult { let mut scaler = ScreenScaler::new(platform_hints.desired_gutter, width_pixels, height_pixels); - let el = EventLoop::new(); - let wb = WindowBuilder::new() + let el = EventLoop::new()?; + let wb = Window::default_attributes() .with_title(window_title.to_string()) .with_min_inner_size(scaler.new_window_size()) .with_inner_size(scaler.new_window_size()); - let window = wb.build(&el).unwrap(); + + let window = el.create_window(wb)?; let (instance, surface, adapter, device, queue, config) = pollster::block_on(init_adapter(&window)); diff --git a/bracket-terminal/src/hal/webgpu/mainloop.rs b/bracket-terminal/src/hal/webgpu/mainloop.rs index 8cbfb9ce..5e01b30c 100644 --- a/bracket-terminal/src/hal/webgpu/mainloop.rs +++ b/bracket-terminal/src/hal/webgpu/mainloop.rs @@ -1,17 +1,17 @@ //! WGPU Main Loop use super::{ - quadrender::QuadRender, ConsoleBacking, FancyConsoleBackend, Font, Framebuffer, - SimpleConsoleBackend, SparseConsoleBackend, SpriteConsoleBackend, WgpuLink, CONSOLE_BACKING, + CONSOLE_BACKING, ConsoleBacking, FancyConsoleBackend, Font, Framebuffer, SimpleConsoleBackend, + SparseConsoleBackend, SpriteConsoleBackend, WgpuLink, quadrender::QuadRender, }; use crate::{ + BResult, gamestate::{BTerm, GameState}, hal::scaler::FontScaler, - input::{clear_input_state, BEvent}, + input::{BEvent, clear_input_state}, prelude::{ - FlexiConsole, SimpleConsole, SparseConsole, SpriteConsole, BACKEND, BACKEND_INTERNAL, INPUT, + BACKEND, BACKEND_INTERNAL, FlexiConsole, INPUT, SimpleConsole, SparseConsole, SpriteConsole, }, - BResult, }; use bracket_geometry::prelude::Point; use std::mem::size_of; diff --git a/bracket-terminal/src/hal/webgpu/mod.rs b/bracket-terminal/src/hal/webgpu/mod.rs index 2422be8c..f5f57902 100644 --- a/bracket-terminal/src/hal/webgpu/mod.rs +++ b/bracket-terminal/src/hal/webgpu/mod.rs @@ -12,7 +12,8 @@ mod backend; pub use backend::*; mod mainloop; pub use mainloop::*; -pub use winit::event::VirtualKeyCode; +pub use winit::keyboard::KeyCode; +pub use winit::keyboard::KeyCode as VirtualKeyCode; mod backing; pub(crate) use backing::*; mod framebuffer; diff --git a/bracket-terminal/src/hal/webgpu/platform.rs b/bracket-terminal/src/hal/webgpu/platform.rs index f546583c..abe1c873 100644 --- a/bracket-terminal/src/hal/webgpu/platform.rs +++ b/bracket-terminal/src/hal/webgpu/platform.rs @@ -1,16 +1,16 @@ //! WGPU Platform definition use super::Framebuffer; -use crate::hal::scaler::{default_gutter_size, ScreenScaler}; +use crate::hal::scaler::{ScreenScaler, default_gutter_size}; use wgpu::{Adapter, Device, Instance, Queue, Surface, SurfaceConfiguration}; use winit::{event_loop::EventLoop, window::Window}; /// Defines the WGPU platform -pub struct PlatformGL { +pub struct PlatformGL<'a> { /// Wrapper for the winit context pub context_wrapper: Option, /// Contains the WGPU back-end (device, etc.) - pub wgpu: Option, + pub wgpu: Option>, /// Target delay per frame pub frame_sleep_time: Option, @@ -24,9 +24,9 @@ pub struct PlatformGL { pub screen_scaler: ScreenScaler, } -pub struct WgpuLink { +pub struct WgpuLink<'a> { pub instance: Instance, - pub surface: Surface, + pub surface: Surface<'a>, pub adapter: Adapter, pub device: Device, pub queue: Queue, @@ -34,8 +34,8 @@ pub struct WgpuLink { pub backing_buffer: Framebuffer, } -unsafe impl Send for PlatformGL {} -unsafe impl Sync for PlatformGL {} +unsafe impl<'a> Send for PlatformGL<'a> {} +unsafe impl<'a> Sync for PlatformGL<'a> {} pub struct WrappedContext { pub el: EventLoop<()>, diff --git a/bracket-terminal/src/hal/webgpu/quadrender.rs b/bracket-terminal/src/hal/webgpu/quadrender.rs index cdedbea3..eddac1a3 100644 --- a/bracket-terminal/src/hal/webgpu/quadrender.rs +++ b/bracket-terminal/src/hal/webgpu/quadrender.rs @@ -1,6 +1,6 @@ //! Helper to render a single full-screen quad -use super::{vertex_array_helper::FloatBuffer, Shader, WgpuLink}; +use super::{Shader, WgpuLink, vertex_array_helper::FloatBuffer}; use crate::BResult; use bracket_color::prelude::RGB; use wgpu::util::DeviceExt; diff --git a/bracket-terminal/src/initializer.rs b/bracket-terminal/src/initializer.rs index 9de30566..34acf215 100755 --- a/bracket-terminal/src/initializer.rs +++ b/bracket-terminal/src/initializer.rs @@ -1,8 +1,8 @@ +use crate::BResult; use crate::prelude::{ - init_raw, BTerm, CharacterTranslationMode, FlexiConsole, Font, InitHints, SimpleConsole, - SparseConsole, SpriteConsole, SpriteSheet, INPUT, + BTerm, CharacterTranslationMode, FlexiConsole, Font, INPUT, InitHints, SimpleConsole, + SparseConsole, SpriteConsole, SpriteSheet, init_raw, }; -use crate::BResult; use bracket_color::prelude::RGB; use std::collections::HashMap; use std::convert::*; diff --git a/bracket-terminal/src/lib.rs b/bracket-terminal/src/lib.rs index fad57d71..f44418c7 100755 --- a/bracket-terminal/src/lib.rs +++ b/bracket-terminal/src/lib.rs @@ -9,7 +9,7 @@ mod hal; mod initializer; mod input; pub mod rex; -pub use bracket_embedding::prelude::{embedded_resource, link_resource, EMBED}; +pub use bracket_embedding::prelude::{EMBED, embedded_resource, link_resource}; pub type BResult = anyhow::Result>; pub(crate) use input::clear_input_state; @@ -24,37 +24,32 @@ compile_error!("Default features (opengl) must be disabled for other back-ends") pub mod prelude { + pub use crate::BResult; + pub use crate::FontCharType; pub use crate::bterm::*; pub use crate::consoles::*; pub use crate::gamestate::GameState; - pub use crate::hal::{init_raw, BTermPlatform, Font, InitHints, Shader, BACKEND}; + pub use crate::hal::{BACKEND, BTermPlatform, Font, InitHints, Shader, init_raw}; pub use crate::initializer::*; - pub use crate::input::{BEvent, Input, INPUT}; + pub use crate::input::{BEvent, INPUT, Input}; pub use crate::rex; pub use crate::rex::*; - pub use crate::BResult; - pub use crate::FontCharType; pub use bracket_color::prelude::*; - pub use bracket_embedding::prelude::{embedded_resource, link_resource, EMBED}; + pub use bracket_embedding::prelude::{EMBED, embedded_resource, link_resource}; pub use bracket_geometry::prelude::*; + pub use winit::keyboard::KeyCode; pub type BError = std::result::Result<(), Box>; #[cfg(all(feature = "opengl", not(target_arch = "wasm32")))] pub use crate::hal::GlCallback; - #[cfg(all(feature = "webgpu", not(feature = "opengl")))] - pub use crate::hal::VirtualKeyCode; - - #[cfg(target_arch = "wasm32")] - pub use crate::hal::VirtualKeyCode; - - #[cfg(feature = "curses")] - pub use crate::hal::VirtualKeyCode; - - #[cfg(feature = "crossterm")] - pub use crate::hal::VirtualKeyCode; - - #[cfg(all(feature = "opengl", not(target_arch = "wasm32")))] + #[cfg(any( + all(feature = "opengl", not(target_arch = "wasm32")), + all(feature = "webgpu", not(feature = "opengl")), + target_arch = "wasm32", + feature = "curses", + feature = "crossterm", + ))] pub use crate::hal::VirtualKeyCode; }