diff --git a/editor/Cargo.toml b/editor/Cargo.toml index d2439eac0..eff08b5d0 100644 --- a/editor/Cargo.toml +++ b/editor/Cargo.toml @@ -16,16 +16,16 @@ include = ["/src/**/*", "/Cargo.toml", "/LICENSE", "/README.md", "/resources/**/ fyrox = { version = "1.0.0-rc.1", path = "../fyrox", default-features = false } fyrox-build-tools = { version = "1.0.0-rc.1", path = "../fyrox-build-tools" } lazy_static = "1.4.0" -ron = "0.8.0" +ron = "0.11" serde = "^1.0.0" -toml = { version = "0.8.10", default-features = false, features = ["parse"] } -toml_edit = "0.22.6" +toml = { version = "0.9", default-features = false, features = ["parse"] } +toml_edit = "0.23" strum = "0.27" strum_macros = "0.27" open = "5" -opener = { version = "0.7.2", default-features = false, features = ["reveal"] } +opener = { version = "0.8", default-features = false, features = ["reveal"] } rust-fuzzy-search = "0.1.1" -cargo_metadata = "0.19" +cargo_metadata = "0.22" serde_json = "1.0.113" image = { version = "0.25.1", default-features = false, features = ["gif", "jpeg", "png", "tga", "tiff", "bmp"] } imageproc = "0.25.0" diff --git a/editor/src/export/mod.rs b/editor/src/export/mod.rs index f2619a595..20a6853f6 100644 --- a/editor/src/export/mod.rs +++ b/editor/src/export/mod.rs @@ -200,7 +200,11 @@ fn export( TargetPlatform::Android => "executor-android", }; - let Some(package) = metadata.packages.iter().find(|p| p.name == package_name) else { + let Some(package) = metadata + .packages + .iter() + .find(|p| p.name.as_ref() == package_name) + else { return Err(format!( "The project does not have `{package_name}` package." )); diff --git a/fyrox-animation/src/machine/state.rs b/fyrox-animation/src/machine/state.rs index 7825c5ea0..03e6549fd 100644 --- a/fyrox-animation/src/machine/state.rs +++ b/fyrox-animation/src/machine/state.rs @@ -115,7 +115,7 @@ impl StateAction { } } StateAction::EnableRandomAnimation(animation_handles) => { - if let Some(animation) = animation_handles.iter().choose(&mut rand::thread_rng()) { + if let Some(animation) = animation_handles.iter().choose(&mut rand::rng()) { if let Some(animation) = animations.try_get_mut(*animation) { animation.set_enabled(true); } diff --git a/fyrox-autotile/Cargo.toml b/fyrox-autotile/Cargo.toml index 7b9e7d5c3..74be202d4 100644 --- a/fyrox-autotile/Cargo.toml +++ b/fyrox-autotile/Cargo.toml @@ -16,4 +16,4 @@ include = ["/src/**/*", "/Cargo.toml", "/LICENSE", "/README.md"] [dependencies] nalgebra = { version = "0.34", features = ["bytemuck"] } fxhash = "0.2.1" -rand = "0.8.5" +rand = "0.9.2" diff --git a/fyrox-autotile/src/lib.rs b/fyrox-autotile/src/lib.rs index 834a821d0..44c495de6 100644 --- a/fyrox-autotile/src/lib.rs +++ b/fyrox-autotile/src/lib.rs @@ -396,7 +396,7 @@ impl ProbabilitySet { if self.total <= 0.0 { return None; } - let mut p = rng.gen_range(0.0..self.total); + let mut p = rng.random_range(0.0..self.total); for (f, v) in self.iter() { if p < f { return Some(v); diff --git a/fyrox-autotile/src/wave.rs b/fyrox-autotile/src/wave.rs index d68357fbf..85e384f94 100644 --- a/fyrox-autotile/src/wave.rs +++ b/fyrox-autotile/src/wave.rs @@ -517,7 +517,7 @@ impl WfcPropagator= min_entropy { continue; } - let noise = rng.gen_range(0.0..=self.limits.maximum_noise); + let noise = rng.random_range(0.0..=self.limits.maximum_noise); let entropy = cell.entropy + noise; if entropy < min_entropy { min_entropy = entropy; @@ -540,7 +540,7 @@ impl WfcPropagator, { let cell = self.wave.get(position)?; - let mut target = rng.gen_range(0.0..cell.sum); + let mut target = rng.random_range(0.0..cell.sum); for pattern in cell.pattern_possibilities.keys() { let p = constraint.probability_of(pattern) as Entropy; target -= p; diff --git a/fyrox-core/Cargo.toml b/fyrox-core/Cargo.toml index 667e78b8d..d92b11aa6 100644 --- a/fyrox-core/Cargo.toml +++ b/fyrox-core/Cargo.toml @@ -19,7 +19,7 @@ fyrox-core-derive = { path = "../fyrox-core-derive", version = "1.0.0-rc.1" } fyrox-math = { path = "../fyrox-math", version = "1.0.0-rc.1" } base64 = "0.22.1" byteorder = "1.4.3" -rand = "0.8.4" +rand = "0.9.2" memoffset = "0.9.0" lazy_static = "1.4.0" nalgebra = { version = "0.34", features = ["bytemuck"] } diff --git a/fyrox-core/src/numeric_range.rs b/fyrox-core/src/numeric_range.rs index 551876063..3db8fbc63 100644 --- a/fyrox-core/src/numeric_range.rs +++ b/fyrox-core/src/numeric_range.rs @@ -19,7 +19,8 @@ // SOFTWARE. use crate::num_traits::Num; -use rand::{distributions::uniform::SampleUniform, Rng}; +use rand::distr::uniform::SampleUniform; +use rand::Rng; use std::ops::Range; fn min(a: T, b: T) -> T @@ -61,7 +62,7 @@ impl RangeExt for Range { if start == end { start } else { - rng.gen_range(Range { start, end }) + rng.random_range(Range { start, end }) } } @@ -82,13 +83,13 @@ impl RangeExt for Range { #[cfg(test)] mod test { - use rand::thread_rng; + use rand::rng; use super::*; #[test] fn test_random() { - let mut rng = thread_rng(); + let mut rng = rng(); let res = (1..10).random(&mut rng); assert!((1..=10).contains(&res)); diff --git a/fyrox-impl/Cargo.toml b/fyrox-impl/Cargo.toml index 5b083d8f9..39be09f8d 100644 --- a/fyrox-impl/Cargo.toml +++ b/fyrox-impl/Cargo.toml @@ -27,8 +27,8 @@ fyrox-graphics-gl = { path = "../fyrox-graphics-gl", version = "1.0.0-rc.1" } fyrox-texture = { path = "../fyrox-texture", version = "1.0.0-rc.1" } fyrox-autotile = { path = "../fyrox-autotile", version = "1.0.0-rc.1" } fyrox-material = { path = "../fyrox-material", version = "1.0.0-rc.1" } -rapier2d = { version = "0.28", features = ["debug-render"] } -rapier3d = { version = "0.28", features = ["debug-render"] } +rapier2d = { version = "0.29", features = ["debug-render"] } +rapier3d = { version = "0.29", features = ["debug-render"] } image = { version = "0.25.1", default-features = false, features = ["gif", "jpeg", "png", "tga", "tiff", "bmp"] } inflate = "0.4.5" serde = { version = "1", features = ["derive"] } @@ -36,7 +36,7 @@ lazy_static = "1.4.0" rayon = "1.5.1" bitflags = "2.2.1" walkdir = "2.3.2" -ron = "0.8.0" +ron = "0.11.0" fxhash = "0.2.1" strum = "0.27" strum_macros = "0.27" @@ -73,10 +73,12 @@ approx = "0.5.1" # make a list of features used by these crates and compare them for both game.txt and editor.txt. If features # don't match, add a new dependency of the corresponding crate below with such features and the issue should # be fixed. -hashbrown = { version = "0.14.3", features = ["raw"] } +hashbrown = { version = "0.15", features = ["default", "default-hasher"] } imageproc = "0.25.0" +serde_core = { version = "1.0.225", features = ["default"] } +wide = { version = "0.7.33", features = ["std", "default"] } serde_json = { version = "1", features = ["raw_value", "default", "std", "unbounded_depth"] } -uuid = { version = "1.7.0", features = ["v4"] } +uuid = { version = "1", features = ["v4", "default", "js"] } [features] enable_profiler = ["fyrox-core/enable_profiler"] diff --git a/fyrox-impl/src/renderer/ssao/mod.rs b/fyrox-impl/src/renderer/ssao/mod.rs index 2be256b4f..66fe9138d 100644 --- a/fyrox-impl/src/renderer/ssao/mod.rs +++ b/fyrox-impl/src/renderer/ssao/mod.rs @@ -77,7 +77,7 @@ impl ScreenSpaceAmbientOcclusionRenderer { let occlusion = server.create_2d_render_target("SsaoTexture", PixelKind::R32F, width, height)?; - let mut rng = crate::rand::thread_rng(); + let mut rng = crate::rand::rng(); Ok(Self { blur: Blur::new(server, width, height)?, @@ -90,9 +90,9 @@ impl ScreenSpaceAmbientOcclusionRenderer { let k = i as f32 / KERNEL_SIZE as f32; let scale = lerpf(0.1, 1.0, k * k); *v = Vector3::new( - rng.gen_range(-1.0..1.0), - rng.gen_range(-1.0..1.0), - rng.gen_range(0.0..1.0), + rng.random_range(-1.0..1.0), + rng.random_range(-1.0..1.0), + rng.random_range(0.0..1.0), ) // Make sphere .try_normalize(f32::EPSILON) @@ -106,8 +106,8 @@ impl ScreenSpaceAmbientOcclusionRenderer { const RGB_PIXEL_SIZE: usize = 3; let mut pixels = [0u8; RGB_PIXEL_SIZE * NOISE_SIZE * NOISE_SIZE]; for pixel in pixels.chunks_exact_mut(RGB_PIXEL_SIZE) { - pixel[0] = rng.gen_range(0u8..255u8); // R - pixel[1] = rng.gen_range(0u8..255u8); // G + pixel[0] = rng.random_range(0u8..255u8); // R + pixel[1] = rng.random_range(0u8..255u8); // G pixel[2] = 0u8; // B } server.create_texture(GpuTextureDescriptor { diff --git a/fyrox-impl/src/scene/dim2/physics.rs b/fyrox-impl/src/scene/dim2/physics.rs index 25093bf9e..8135bfbc8 100644 --- a/fyrox-impl/src/scene/dim2/physics.rs +++ b/fyrox-impl/src/scene/dim2/physics.rs @@ -78,7 +78,6 @@ use std::{ cmp::Ordering, fmt::{Debug, Formatter}, hash::Hash, - num::NonZeroUsize, sync::Arc, }; @@ -637,13 +636,7 @@ impl PhysicsWorld { .integration_parameters .normalized_max_corrective_velocity, normalized_prediction_distance: self.integration_parameters.prediction_distance, - num_solver_iterations: NonZeroUsize::new( - self.integration_parameters.num_solver_iterations, - ) - .unwrap(), - num_additional_friction_iterations: self - .integration_parameters - .num_additional_friction_iterations, + num_solver_iterations: self.integration_parameters.num_solver_iterations, num_internal_pgs_iterations: self .integration_parameters .num_internal_pgs_iterations, @@ -1048,7 +1041,7 @@ impl PhysicsWorld { } } else { let mut builder = RigidBodyBuilder::new(rigid_body_node.body_type().into()) - .position(isometry_from_global_transform( + .pose(isometry_from_global_transform( &rigid_body_node.global_transform(), )) .ccd_enabled(rigid_body_node.is_ccd_enabled()) diff --git a/fyrox-impl/src/scene/graph/physics.rs b/fyrox-impl/src/scene/graph/physics.rs index fd82d54a7..d383c1ad1 100644 --- a/fyrox-impl/src/scene/graph/physics.rs +++ b/fyrox-impl/src/scene/graph/physics.rs @@ -73,7 +73,6 @@ use std::{ cmp::Ordering, fmt::{Debug, Formatter}, hash::Hash, - num::NonZeroUsize, sync::Arc, time::Duration, }; @@ -82,6 +81,7 @@ use strum_macros::{AsRefStr, EnumString, VariantNames}; use fyrox_graph::{BaseSceneGraph, SceneGraphNode}; pub use rapier3d::geometry::shape::*; use rapier3d::parry::query::DefaultQueryDispatcher; +use rapier3d::prelude::FrictionModel; /// Shape-dependent identifier. #[derive(Copy, Clone, Debug, Hash, PartialEq, Eq)] @@ -873,10 +873,6 @@ pub struct IntegrationParameters { #[reflect(min_value = 0.0)] pub num_solver_iterations: usize, - /// Number of addition friction resolution iteration run during the last solver sub-step (default: `4`). - #[reflect(min_value = 0.0)] - pub num_additional_friction_iterations: usize, - /// Number of internal Project Gauss Seidel (PGS) iterations run at each solver iteration (default: `1`). #[reflect(min_value = 0.0)] pub num_internal_pgs_iterations: usize, @@ -920,7 +916,6 @@ impl Default for IntegrationParameters { normalized_max_corrective_velocity: 10.0, prediction_distance: 0.002, num_internal_pgs_iterations: 1, - num_additional_friction_iterations: 4, num_solver_iterations: 4, min_island_size: 128, max_ccd_substeps: 4, @@ -1124,13 +1119,7 @@ impl PhysicsWorld { .integration_parameters .normalized_max_corrective_velocity, normalized_prediction_distance: self.integration_parameters.prediction_distance, - num_solver_iterations: NonZeroUsize::new( - self.integration_parameters.num_solver_iterations, - ) - .unwrap(), - num_additional_friction_iterations: self - .integration_parameters - .num_additional_friction_iterations, + num_solver_iterations: self.integration_parameters.num_solver_iterations, num_internal_pgs_iterations: self .integration_parameters .num_internal_pgs_iterations, @@ -1139,6 +1128,7 @@ impl PhysicsWorld { .num_internal_stabilization_iterations, min_island_size: self.integration_parameters.min_island_size as usize, max_ccd_substeps: self.integration_parameters.max_ccd_substeps as usize, + friction_model: FrictionModel::default(), }; self.pipeline.step( @@ -1596,7 +1586,7 @@ impl PhysicsWorld { } } else { let mut builder = RigidBodyBuilder::new(rigid_body_node.body_type().into()) - .position(isometry_from_global_transform( + .pose(isometry_from_global_transform( &rigid_body_node.global_transform(), )) .ccd_enabled(rigid_body_node.is_ccd_enabled()) diff --git a/fyrox-impl/src/scene/particle_system/mod.rs b/fyrox-impl/src/scene/particle_system/mod.rs index 53d53b2c0..81077e4fd 100644 --- a/fyrox-impl/src/scene/particle_system/mod.rs +++ b/fyrox-impl/src/scene/particle_system/mod.rs @@ -36,7 +36,7 @@ use crate::{ visitor::prelude::*, }, material::{self, Material, MaterialResource}, - rand::{prelude::StdRng, Error, RngCore, SeedableRng}, + rand::{prelude::StdRng, RngCore, SeedableRng}, renderer::{self, bundle::RenderContext}, scene::{ base::{Base, BaseBuilder}, @@ -109,11 +109,6 @@ impl RngCore for ParticleSystemRng { fn fill_bytes(&mut self, dest: &mut [u8]) { self.rng.fill_bytes(dest) } - - #[inline] - fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error> { - self.rng.try_fill_bytes(dest) - } } impl Visit for ParticleSystemRng { diff --git a/fyrox-impl/src/scene/tilemap/tile_source.rs b/fyrox-impl/src/scene/tilemap/tile_source.rs index 44aa43776..550fafe6c 100644 --- a/fyrox-impl/src/scene/tilemap/tile_source.rs +++ b/fyrox-impl/src/scene/tilemap/tile_source.rs @@ -28,7 +28,7 @@ use fyrox_core::swap_hash_map_entry; use crate::{ core::{algebra::Vector2, reflect::prelude::*, visitor::prelude::*}, fxhash::FxHashMap, - rand::{seq::IteratorRandom, thread_rng}, + rand::{rng, seq::IteratorRandom}, }; use std::{ cmp::Ordering, @@ -317,7 +317,7 @@ impl TileSource for RandomTileSource<'_> { self.0.transformation() } fn get_at(&self, _position: Vector2) -> Option { - self.0.values().choose(&mut thread_rng()).cloned() + self.0.values().choose(&mut rng()).cloned() } } @@ -332,7 +332,7 @@ impl TileSource for PartialRandomTileSource<'_> { self.0.transformation() } fn get_at(&self, _position: Vector2) -> Option { - let pos = self.1.iter().choose(&mut thread_rng())?; + let pos = self.1.iter().choose(&mut rng())?; self.0.get_at(pos) } } diff --git a/fyrox-impl/src/utils/astar.rs b/fyrox-impl/src/utils/astar.rs index f54c6bd9e..3d889a908 100644 --- a/fyrox-impl/src/utils/astar.rs +++ b/fyrox-impl/src/utils/astar.rs @@ -653,11 +653,11 @@ mod test { let mut paths_count = 0; for _ in 0..1000 { - let sx = rand::thread_rng().gen_range(0..(size - 1)); - let sy = rand::thread_rng().gen_range(0..(size - 1)); + let sx = rand::rng().random_range(0..(size - 1)); + let sy = rand::rng().random_range(0..(size - 1)); - let tx = rand::thread_rng().gen_range(0..(size - 1)); - let ty = rand::thread_rng().gen_range(0..(size - 1)); + let tx = rand::rng().random_range(0..(size - 1)); + let ty = rand::rng().random_range(0..(size - 1)); let from = sy * size + sx; let to = ty * size + tx; @@ -784,11 +784,11 @@ mod test { ); for _ in 0..1000 { - let sx = rand::thread_rng().gen_range(0..(size - 1)); - let sy = rand::thread_rng().gen_range(0..(size - 1)); + let sx = rand::rng().random_range(0..(size - 1)); + let sy = rand::rng().random_range(0..(size - 1)); - let tx = rand::thread_rng().gen_range(0..(size - 1)); - let ty = rand::thread_rng().gen_range(0..(size - 1)); + let tx = rand::rng().random_range(0..(size - 1)); + let ty = rand::rng().random_range(0..(size - 1)); let from = sy * size + sx; let to = ty * size + tx; @@ -870,12 +870,12 @@ mod test { for _ in 0..1000 { // generates a random start point on the left half of the grid - let sx = rand::thread_rng().gen_range(0..((size / 2) - 1)); - let sy = rand::thread_rng().gen_range(0..(size - 1)); + let sx = rand::rng().random_range(0..((size / 2) - 1)); + let sy = rand::rng().random_range(0..(size - 1)); // generates a random end point on the right half of the grid - let tx = rand::thread_rng().gen_range((size / 2)..(size - 1)); - let ty = rand::thread_rng().gen_range(0..(size - 1)); + let tx = rand::rng().random_range((size / 2)..(size - 1)); + let ty = rand::rng().random_range(0..(size - 1)); let from = sy * size + sx; let to = ty * size + tx; diff --git a/fyrox-material/Cargo.toml b/fyrox-material/Cargo.toml index 55e063f35..a6e687864 100644 --- a/fyrox-material/Cargo.toml +++ b/fyrox-material/Cargo.toml @@ -24,7 +24,7 @@ fxhash = "0.2.1" lazy_static = "1.4.0" uuid = "1" serde = { version = "1", features = ["derive"] } -ron = "0.8.0" +ron = "0.11.0" regex = "1" [dev-dependencies] diff --git a/fyrox-resource/Cargo.toml b/fyrox-resource/Cargo.toml index 516a71d19..e77f00b68 100644 --- a/fyrox-resource/Cargo.toml +++ b/fyrox-resource/Cargo.toml @@ -16,7 +16,7 @@ rust-version = "1.86" [dependencies] fyrox-core = { path = "../fyrox-core", version = "1.0.0-rc.1", features = ["serde"] } fxhash = "0.2.1" -ron = "0.8.0" +ron = "0.11.0" serde = { version = "1", features = ["derive"] } walkdir = "2.3.2" rayon = "1.7.0" \ No newline at end of file diff --git a/fyrox-resource/src/options.rs b/fyrox-resource/src/options.rs index b7d3002fb..d4f612132 100644 --- a/fyrox-resource/src/options.rs +++ b/fyrox-resource/src/options.rs @@ -28,7 +28,7 @@ use fyrox_core::io::FileError; use fyrox_core::reflect::Reflect; use ron::ser::PrettyConfig; use serde::{de::DeserializeOwned, Serialize}; -use std::io::ErrorKind; +use std::io::{ErrorKind, Write}; use std::{fs::File, path::Path}; /// Extension of import options file. @@ -47,8 +47,9 @@ pub trait ImportOptions: { /// Saves import options into a specified file. fn save_internal(&self, path: &Path) -> bool { - if let Ok(file) = File::create(path) { - if ron::ser::to_writer_pretty(file, self, PrettyConfig::default()).is_ok() { + if let Ok(mut file) = File::create(path) { + if let Ok(string) = ron::ser::to_string_pretty(self, PrettyConfig::default()) { + Log::verify(file.write_all(string.as_bytes())); return true; } } diff --git a/fyrox-ui/Cargo.toml b/fyrox-ui/Cargo.toml index 97121294f..de690ac1e 100644 --- a/fyrox-ui/Cargo.toml +++ b/fyrox-ui/Cargo.toml @@ -30,7 +30,7 @@ strum = "0.27" strum_macros = "0.27" serde = { version = "1", features = ["derive"] } bytemuck = { version = "1.23.2", features = ["derive"] } -uuid = { version = "1.7.0", features = ["v4"] } +uuid = { version = "1", features = ["v4", "default"] } [features] enable_profiler = ["fyrox-core/enable_profiler"] diff --git a/project-manager/Cargo.toml b/project-manager/Cargo.toml index 2c056aa09..2099b2532 100644 --- a/project-manager/Cargo.toml +++ b/project-manager/Cargo.toml @@ -17,8 +17,8 @@ fyrox = { version = "1.0.0-rc.1", path = "../fyrox" } fyrox-template-core = { version = "1.0.0-rc.1", path = "../template-core" } fyrox-build-tools = { version = "1.0.0-rc.1", path = "../fyrox-build-tools" } serde = { version = "1", features = ["derive"] } -ron = "0.8.1" +ron = "0.11.0" open = "5.0.1" -cargo_metadata = "0.19.0" +cargo_metadata = "0.22.0" serde_json = "1.0.133" directories = "5.0.1" \ No newline at end of file diff --git a/project-manager/src/manager.rs b/project-manager/src/manager.rs index b45c1431d..beb8747d3 100644 --- a/project-manager/src/manager.rs +++ b/project-manager/src/manager.rs @@ -879,7 +879,7 @@ impl ProjectManager { { self.settings.projects.push(Project { manifest_path, - name: game_package.name.clone(), + name: game_package.name.as_str().to_string(), hot_reload: false, }); self.refresh(ui); diff --git a/project-manager/src/upgrade.rs b/project-manager/src/upgrade.rs index 92ecd8434..8ba80f3d7 100644 --- a/project-manager/src/upgrade.rs +++ b/project-manager/src/upgrade.rs @@ -96,7 +96,7 @@ impl UpgradeTool { let is_git = dependency .source .as_ref() - .is_some_and(|s| s.contains("https://github.com/FyroxEngine/Fyrox")); + .is_some_and(|s| s.repr.contains("https://github.com/FyroxEngine/Fyrox")); let selected_version = if is_local { Version::Local } else if is_git { diff --git a/project-manager/src/utils.rs b/project-manager/src/utils.rs index 26d821a4e..c7c60ad34 100644 --- a/project-manager/src/utils.rs +++ b/project-manager/src/utils.rs @@ -137,9 +137,9 @@ fn to_pretty_version(version_req: &VersionReq) -> String { pub fn fyrox_version_string(metadata: &Metadata) -> Option { fyrox_dependency(metadata).and_then(|dependency| { if let Some(source) = dependency.source.as_ref() { - if source.contains("registry+") { + if source.repr.contains("registry+") { return Some(to_pretty_version(&dependency.req)); - } else if source.contains("git+") { + } else if source.repr.contains("git+") { return Some("nightly".to_string()); } } else if let Some(path) = dependency.path.as_ref() { diff --git a/template-core/Cargo.toml b/template-core/Cargo.toml index 58d5aef1a..896a7c88c 100644 --- a/template-core/Cargo.toml +++ b/template-core/Cargo.toml @@ -15,11 +15,11 @@ rust-version = "1.86" [dependencies] uuid = { version = "1", features = ["v4"] } -convert_case = "0.6.0" -toml = "0.8.10" -toml_edit = "0.22.6" +convert_case = "0.8.0" +toml = "0.9.6" +toml_edit = "0.23.5" regex = "1.7.3" unicode-xid = "0.2.6" [build-dependencies] -toml_edit = "0.22.6" \ No newline at end of file +toml_edit = "0.23.5" \ No newline at end of file