Version bump dependencies

This commit is contained in:
hal8174 2025-02-06 22:04:28 +01:00
parent abf2cac093
commit 66f40b4aa4
8 changed files with 205 additions and 203 deletions

290
Cargo.lock generated
View file

@ -32,6 +32,12 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
[[package]]
name = "anes"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
[[package]]
name = "anstream"
version = "0.6.18"
@ -111,17 +117,6 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
dependencies = [
"hermit-abi",
"libc",
"winapi",
]
[[package]]
name = "autocfg"
version = "1.4.0"
@ -175,12 +170,6 @@ dependencies = [
"backtrace",
]
[[package]]
name = "base64"
version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "base64"
version = "0.22.1"
@ -289,9 +278,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
version = "1.2.10"
version = "1.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229"
checksum = "755717a7de9ec452bf7f3f1a3099085deabd7f2962b861dae91ecd7a365903d2"
dependencies = [
"jobserver",
"libc",
@ -315,21 +304,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "clap"
version = "2.34.0"
name = "ciborium"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
dependencies = [
"bitflags 1.3.2",
"textwrap 0.11.0",
"unicode-width",
"ciborium-io",
"ciborium-ll",
"serde",
]
[[package]]
name = "ciborium-io"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
[[package]]
name = "ciborium-ll"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
dependencies = [
"ciborium-io",
"half",
]
[[package]]
name = "clap"
version = "4.5.27"
version = "4.5.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796"
checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff"
dependencies = [
"clap_builder",
"clap_derive",
@ -349,9 +354,9 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.24"
version = "4.5.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c"
checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed"
dependencies = [
"heck",
"proc-macro2",
@ -388,24 +393,24 @@ dependencies = [
[[package]]
name = "criterion"
version = "0.3.6"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b01d6de93b2b6c65e17c634a26653a29d107b3c98c607c765bf38d041531cd8f"
checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
dependencies = [
"atty",
"anes",
"cast",
"clap 2.34.0",
"ciborium",
"clap",
"criterion-plot",
"csv",
"is-terminal",
"itertools 0.10.5",
"lazy_static",
"num-traits",
"once_cell",
"oorandom",
"plotters",
"rayon",
"regex",
"serde",
"serde_cbor",
"serde_derive",
"serde_json",
"tinytemplate",
@ -414,9 +419,9 @@ dependencies = [
[[package]]
name = "criterion-plot"
version = "0.4.5"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2673cc8207403546f45f5fd319a974b1e6983ad1a3ee7e6041650013be041876"
checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
dependencies = [
"cast",
"itertools 0.10.5",
@ -453,27 +458,6 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
[[package]]
name = "csv"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf"
dependencies = [
"csv-core",
"itoa",
"ryu",
"serde",
]
[[package]]
name = "csv-core"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
dependencies = [
"memchr",
]
[[package]]
name = "darling"
version = "0.20.10"
@ -538,7 +522,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0"
dependencies = [
"bit_field",
"half 2.4.1",
"half",
"lebe",
"miniz_oxide",
"rayon-core",
@ -550,9 +534,9 @@ dependencies = [
name = "factorio-blueprint"
version = "0.1.0"
dependencies = [
"base64 0.22.1",
"base64",
"bon",
"clap 4.5.27",
"clap",
"factorio-core",
"flate2",
"serde",
@ -563,12 +547,12 @@ dependencies = [
name = "factorio-blueprint-generator"
version = "0.1.0"
dependencies = [
"clap 4.5.27",
"clap",
"factorio-blueprint",
"factorio-core",
"factorio-layout",
"factorio-pathfinding",
"rand",
"rand 0.9.0",
"serde",
"serde_json",
"serde_yaml",
@ -578,12 +562,12 @@ dependencies = [
name = "factorio-core"
version = "0.1.0"
dependencies = [
"clap 4.5.27",
"clap",
"criterion",
"image",
"proptest",
"proptest-derive",
"rand",
"rand 0.9.0",
"serde",
"termcolor",
]
@ -592,12 +576,12 @@ dependencies = [
name = "factorio-layout"
version = "0.1.0"
dependencies = [
"clap 4.5.27",
"clap",
"factorio-core",
"factorio-pathfinding",
"image",
"miette",
"rand",
"rand 0.9.0",
"serde",
"serde_json",
"serde_yaml",
@ -607,9 +591,9 @@ dependencies = [
name = "factorio-pathfinding"
version = "0.1.0"
dependencies = [
"base64 0.21.7",
"base64",
"bon",
"clap 4.5.27",
"clap",
"criterion",
"factorio-blueprint",
"factorio-core",
@ -694,12 +678,6 @@ version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "half"
version = "1.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
[[package]]
name = "half"
version = "2.4.1"
@ -724,12 +702,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.1.19"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
[[package]]
name = "ident_case"
@ -797,6 +772,17 @@ dependencies = [
"syn",
]
[[package]]
name = "is-terminal"
version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e19b23d53f35ce9f56aebc7d1bb4e6ac1e9c0db7ac85c8d1760c04379edced37"
dependencies = [
"hermit-abi",
"libc",
"windows-sys",
]
[[package]]
name = "is_ci"
version = "1.2.0"
@ -925,9 +911,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
[[package]]
name = "miette"
version = "7.4.0"
version = "7.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "317f146e2eb7021892722af37cf1b971f0a70c8406f487e24952667616192c64"
checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484"
dependencies = [
"backtrace",
"backtrace-ext",
@ -938,16 +924,16 @@ dependencies = [
"supports-hyperlinks",
"supports-unicode",
"terminal_size",
"textwrap 0.16.1",
"textwrap",
"thiserror",
"unicode-width",
]
[[package]]
name = "miette-derive"
version = "7.4.0"
version = "7.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23c9b935fbe1d6cbd1dac857b54a688145e2d93f48db36010514d0f612d0ad67"
checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147"
dependencies = [
"proc-macro2",
"quote",
@ -1128,7 +1114,7 @@ version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
dependencies = [
"zerocopy",
"zerocopy 0.7.35",
]
[[package]]
@ -1180,8 +1166,8 @@ dependencies = [
"bitflags 2.8.0",
"lazy_static",
"num-traits",
"rand",
"rand_chacha",
"rand 0.8.5",
"rand_chacha 0.3.1",
"rand_xorshift",
"regex-syntax",
"rusty-fork",
@ -1237,8 +1223,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
"rand_chacha",
"rand_core",
"rand_chacha 0.3.1",
"rand_core 0.6.4",
]
[[package]]
name = "rand"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
dependencies = [
"rand_chacha 0.9.0",
"rand_core 0.9.0",
"zerocopy 0.8.17",
]
[[package]]
@ -1248,7 +1245,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core",
"rand_core 0.6.4",
]
[[package]]
name = "rand_chacha"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [
"ppv-lite86",
"rand_core 0.9.0",
]
[[package]]
@ -1260,13 +1267,23 @@ dependencies = [
"getrandom 0.2.15",
]
[[package]]
name = "rand_core"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff"
dependencies = [
"getrandom 0.3.1",
"zerocopy 0.8.17",
]
[[package]]
name = "rand_xorshift"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
dependencies = [
"rand_core",
"rand_core 0.6.4",
]
[[package]]
@ -1295,8 +1312,8 @@ dependencies = [
"once_cell",
"paste",
"profiling",
"rand",
"rand_chacha",
"rand 0.8.5",
"rand_chacha 0.3.1",
"simd_helpers",
"system-deps",
"thiserror",
@ -1435,16 +1452,6 @@ dependencies = [
"serde_derive",
]
[[package]]
name = "serde_cbor"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
dependencies = [
"half 1.8.3",
"serde",
]
[[package]]
name = "serde_derive"
version = "1.0.217"
@ -1546,9 +1553,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
[[package]]
name = "syn"
version = "2.0.96"
version = "2.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"
dependencies = [
"proc-macro2",
"quote",
@ -1607,15 +1614,6 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
dependencies = [
"unicode-width",
]
[[package]]
name = "textwrap"
version = "0.16.1"
@ -1669,9 +1667,9 @@ dependencies = [
[[package]]
name = "toml"
version = "0.8.19"
version = "0.8.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148"
dependencies = [
"serde",
"serde_spanned",
@ -1690,9 +1688,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.22.22"
version = "0.22.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
checksum = "02a8b472d1a3d7c18e2d61a489aee3453fd9031c33e4f55bd533f4a7adca1bee"
dependencies = [
"indexmap",
"serde",
@ -1756,9 +1754,9 @@ checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
[[package]]
name = "wait-timeout"
version = "0.2.0"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11"
dependencies = [
"libc",
]
@ -1862,22 +1860,6 @@ version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-util"
version = "0.1.9"
@ -1887,12 +1869,6 @@ dependencies = [
"windows-sys",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-sys"
version = "0.59.0"
@ -1968,9 +1944,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
version = "0.6.25"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad699df48212c6cc6eb4435f35500ac6fd3b9913324f938aea302022ce19d310"
checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f"
dependencies = [
"memchr",
]
@ -1991,7 +1967,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
dependencies = [
"byteorder",
"zerocopy-derive",
"zerocopy-derive 0.7.35",
]
[[package]]
name = "zerocopy"
version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713"
dependencies = [
"zerocopy-derive 0.8.17",
]
[[package]]
@ -2005,6 +1990,17 @@ dependencies = [
"syn",
]
[[package]]
name = "zerocopy-derive"
version = "0.8.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "zune-core"
version = "0.4.12"

View file

@ -12,4 +12,4 @@ serde = { version = "1.0.192", features = ["derive"] }
serde_json = "1.0.135"
serde_yaml = "0.9.34"
clap = { version = "4.5.26", features = ["derive"] }
rand = { version = "0.8.5", features = ["small_rng"] }
rand = { version = "0.9.0", features = ["small_rng"] }

View file

@ -5,13 +5,13 @@ edition = "2024"
[dev-dependencies]
criterion = "0.3"
criterion = "0.5"
[dependencies]
clap = { version = "4.5.26", features = ["derive"] }
image = "0.25.5"
proptest = "1.5.0"
proptest-derive = "0.5.0"
rand = "0.8.5"
rand = "0.9.0"
serde = { version = "1.0.217", features = ["derive"] }
termcolor = "1.4.1"

View file

@ -86,7 +86,7 @@ impl Direction {
}
}
impl rand::prelude::Distribution<Direction> for rand::distributions::Standard {
impl rand::prelude::Distribution<Direction> for rand::distr::StandardUniform {
fn sample<R: rand::Rng + ?Sized>(&self, rng: &mut R) -> Direction {
let a = [
Direction::Up,
@ -94,7 +94,7 @@ impl rand::prelude::Distribution<Direction> for rand::distributions::Standard {
Direction::Down,
Direction::Left,
];
let r = rng.gen_range(0..4);
let r = rng.random_range(0..4);
a[r]
}
}

View file

@ -6,7 +6,7 @@ edition = "2024"
[dependencies]
factorio-core = { path = "../factorio-core" }
factorio-pathfinding = { path = "../factorio-pathfinding" }
rand = { version = "0.8.5", features = ["small_rng"] }
rand = { version = "0.9.0", features = ["small_rng"] }
serde = { version = "1.0.192", features = ["derive"] }
image = "0.25.2"
serde_json = "1.0.108"

View file

@ -4,7 +4,10 @@ use factorio_core::{
visualize::{Color, Symbol, Visualization, Visualize, image_grid},
};
use factorio_pathfinding::belt_finding::{self, conflict_avoidance::ConflictAvoidance};
use rand::{Rng, seq::SliceRandom};
use rand::{
Rng,
seq::{IndexedRandom, SliceRandom},
};
use serde::{Deserialize, Serialize};
use std::{sync::atomic::AtomicU32, time::Instant};
@ -382,24 +385,24 @@ impl Layout<'_> {
let b = &problem.blocks[blocks.len()];
for _ in 0..1000 {
let dir = rng.r#gen::<Direction>();
let dir = rng.random::<Direction>();
let pos = match dir {
Direction::Up => Position::new(
rng.gen_range(0..=(problem.size.x - b.size.x)),
rng.gen_range(0..=(problem.size.y - b.size.y)),
rng.random_range(0..=(problem.size.x - b.size.x)),
rng.random_range(0..=(problem.size.y - b.size.y)),
),
Direction::Right => Position::new(
rng.gen_range((b.size.y - 1)..problem.size.x),
rng.gen_range(0..=(problem.size.y - b.size.x)),
rng.random_range((b.size.y - 1)..problem.size.x),
rng.random_range(0..=(problem.size.y - b.size.x)),
),
Direction::Down => Position::new(
rng.gen_range((b.size.x - 1)..problem.size.x),
rng.gen_range((b.size.y - 1)..problem.size.y),
rng.random_range((b.size.x - 1)..problem.size.x),
rng.random_range((b.size.y - 1)..problem.size.y),
),
Direction::Left => Position::new(
rng.gen_range(0..=(problem.size.x - b.size.y)),
rng.gen_range((b.size.x - 1)..problem.size.y),
rng.random_range(0..=(problem.size.x - b.size.y)),
rng.random_range((b.size.x - 1)..problem.size.y),
),
};
@ -460,7 +463,7 @@ impl Layout<'_> {
loop {
let p = r.choose_weighted(rng, |i| i.1).unwrap();
if p.0(&mut s, rng) && rng.gen_bool(0.5) {
if p.0(&mut s, rng) && rng.random_bool(0.5) {
break;
}
}
@ -470,28 +473,28 @@ impl Layout<'_> {
}
fn mutate_replace<R: Rng + ?Sized>(layout: &mut Layout, rng: &mut R) -> bool {
let i = rng.gen_range(0..layout.blocks.len());
let i = rng.random_range(0..layout.blocks.len());
let dir = rng.r#gen::<Direction>();
let dir = rng.random::<Direction>();
let b = &layout.problem.blocks[i];
let pos = match dir {
Direction::Up => Position::new(
rng.gen_range(0..=(layout.problem.size.x - b.size.x)),
rng.gen_range(0..=(layout.problem.size.y - b.size.y)),
rng.random_range(0..=(layout.problem.size.x - b.size.x)),
rng.random_range(0..=(layout.problem.size.y - b.size.y)),
),
Direction::Right => Position::new(
rng.gen_range((b.size.y - 1)..layout.problem.size.x),
rng.gen_range(0..=(layout.problem.size.y - b.size.x)),
rng.random_range((b.size.y - 1)..layout.problem.size.x),
rng.random_range(0..=(layout.problem.size.y - b.size.x)),
),
Direction::Down => Position::new(
rng.gen_range((b.size.x - 1)..layout.problem.size.x),
rng.gen_range((b.size.y - 1)..layout.problem.size.y),
rng.random_range((b.size.x - 1)..layout.problem.size.x),
rng.random_range((b.size.y - 1)..layout.problem.size.y),
),
Direction::Left => Position::new(
rng.gen_range(0..=(layout.problem.size.x - b.size.y)),
rng.gen_range((b.size.x - 1)..layout.problem.size.y),
rng.random_range(0..=(layout.problem.size.x - b.size.y)),
rng.random_range((b.size.x - 1)..layout.problem.size.y),
),
};
@ -512,7 +515,7 @@ impl Layout<'_> {
}
fn mutate_flip<R: Rng + ?Sized>(layout: &mut Layout, rng: &mut R) -> bool {
let i = rng.gen_range(0..layout.blocks.len());
let i = rng.random_range(0..layout.blocks.len());
let b = &mut layout.blocks[i];
let block = &layout.problem.blocks[i];
@ -530,8 +533,8 @@ impl Layout<'_> {
}
fn mutate_jiggle<R: Rng + ?Sized>(layout: &mut Layout, rng: &mut R) -> bool {
let i = rng.gen_range(0..layout.blocks.len());
let dir = rng.r#gen::<Direction>();
let i = rng.random_range(0..layout.blocks.len());
let dir = rng.random::<Direction>();
let step = [(1, 10), (2, 5), (3, 5)]
.choose_weighted(rng, |i| i.1)
.unwrap()

View file

@ -1,7 +1,10 @@
use crate::{LayoutInput, LayoutResult};
use factorio_core::prelude::*;
use factorio_pathfinding::{Connection, examples::HashMapMap};
use rand::{Rng, seq::SliceRandom};
use rand::{
Rng,
seq::{IndexedRandom, SliceRandom},
};
pub fn initally_set_blocks(
input: &LayoutInput,
@ -34,24 +37,24 @@ fn place_block(
let b = &input.blocks[blocks.len()];
for _ in 0..retries {
let dir = rng.r#gen::<Direction>();
let dir = rng.random::<Direction>();
let pos = match dir {
Direction::Up => Position::new(
rng.gen_range(0..=(size.x - b.size.x)),
rng.gen_range(0..=(size.y - b.size.y)),
rng.random_range(0..=(size.x - b.size.x)),
rng.random_range(0..=(size.y - b.size.y)),
),
Direction::Right => Position::new(
rng.gen_range((b.size.y - 1)..size.x),
rng.gen_range(0..=(size.y - b.size.x)),
rng.random_range((b.size.y - 1)..size.x),
rng.random_range(0..=(size.y - b.size.x)),
),
Direction::Down => Position::new(
rng.gen_range((b.size.x - 1)..size.x),
rng.gen_range((b.size.y - 1)..size.y),
rng.random_range((b.size.x - 1)..size.x),
rng.random_range((b.size.y - 1)..size.y),
),
Direction::Left => Position::new(
rng.gen_range(0..=(size.x - b.size.y)),
rng.gen_range((b.size.x - 1)..size.y),
rng.random_range(0..=(size.x - b.size.y)),
rng.random_range((b.size.x - 1)..size.y),
),
};
@ -148,7 +151,7 @@ pub fn mutate<R: Rng>(
loop {
let p = r.choose_weighted(rng, |i| i.1).unwrap().0;
if p(input, output, &mut blocks, rng) && rng.gen_bool(0.5) {
if p(input, output, &mut blocks, rng) && rng.random_bool(0.5) {
break;
}
}
@ -162,28 +165,28 @@ fn mutate_replace<R: Rng>(
rng: &mut R,
) -> bool {
let _ = input;
let i = rng.gen_range(0..blocks.len());
let i = rng.random_range(0..blocks.len());
let block = blocks[i];
let dir = rng.r#gen::<Direction>();
let dir = rng.random::<Direction>();
let size = output.size;
let pos = match dir {
Direction::Up => Position::new(
rng.gen_range(0..=(size.x - block.size().x)),
rng.gen_range(0..=(size.y - block.size().y)),
rng.random_range(0..=(size.x - block.size().x)),
rng.random_range(0..=(size.y - block.size().y)),
),
Direction::Right => Position::new(
rng.gen_range((block.size().y - 1)..size.x),
rng.gen_range(0..=(size.y - block.size().x)),
rng.random_range((block.size().y - 1)..size.x),
rng.random_range(0..=(size.y - block.size().x)),
),
Direction::Down => Position::new(
rng.gen_range((block.size().x - 1)..size.x),
rng.gen_range((block.size().y - 1)..size.y),
rng.random_range((block.size().x - 1)..size.x),
rng.random_range((block.size().y - 1)..size.y),
),
Direction::Left => Position::new(
rng.gen_range(0..=(size.x - block.size().y)),
rng.gen_range((block.size().x - 1)..size.y),
rng.random_range(0..=(size.x - block.size().y)),
rng.random_range((block.size().x - 1)..size.y),
),
};
@ -210,7 +213,7 @@ fn mutate_flip<R: Rng>(
) -> bool {
let _ = output;
let _ = input;
let i = rng.gen_range(0..blocks.len());
let i = rng.random_range(0..blocks.len());
let block = blocks[i];
blocks[i] = Block::new(
@ -233,10 +236,10 @@ fn mutate_jiggle<R: Rng>(
rng: &mut R,
) -> bool {
let _ = input;
let i = rng.gen_range(0..blocks.len());
let i = rng.random_range(0..blocks.len());
let block = blocks[i];
let dir = rng.r#gen::<Direction>();
let dir = rng.random::<Direction>();
let step = [(1, 10), (2, 5), (3, 5)]
.choose_weighted(rng, |i| i.1)
.unwrap()

View file

@ -7,7 +7,7 @@ edition = "2021"
[dev-dependencies]
criterion = "0.3"
criterion = "0.5"
[[bench]]
name = "bruteforce"
@ -16,7 +16,7 @@ harness = false
[dependencies]
factorio-core = { path = "../factorio-core" }
factorio-blueprint = { path = "../factorio-blueprint" }
base64 = "0.21.5"
base64 = "0.22.1"
bon = "3.0.2"
clap = { version = "4.4.8", features = ["derive"] }
flate2 = "1.0.28"