```bash
jotalea ~ λ paru -S godot rustup just git-lfs
[sudo] contraseña para jotalea:
advertencia: godot-4.6.1-1 está actualizado -- reinstalándolo
advertencia: just-1.46.0-1 está actualizado -- reinstalándolo
advertencia: git-lfs-3.7.1-1 está actualizado -- reinstalándolo
resolviendo dependencias...
buscando conflictos entre paquetes...
Paquete (4) Versión antigua Versión nueva Diferencia neta
extra/git-lfs 3.7.1-1 3.7.1-1 0,00 MiB
extra/godot 4.6.1-1 4.6.1-1 0,00 MiB
extra/just 1.46.0-1 1.46.0-1 0,00 MiB
extra/rustup 1.28.2-5 11,46 MiB
Tamaño total de la instalación: 188,92 MiB
Tamaño neto tras actualizar: 11,46 MiB
:: ¿Continuar con la instalación? [S/n]
(4/4) comprobando las claves del depósito
(4/4) verificando la integridad de los paquetes
(4/4) cargando los archivos de los paquetes
(4/4) comprobando conflictos entre archivos
:: Procesando los cambios de los paquetes...
(1/4) reinstalando godot
(2/4) instalando rustup
(3/4) reinstalando just
(4/4) reinstalando git-lfs
:: Ejecutando los «hooks» de posinstalación...
(1/4) Updating the MIME type database...
(2/4) Arming ConditionNeedsUpdate...
(3/4) Checking which packages need to be rebuilt
(4/4) Updating the desktop file MIME type cache...
jotalea ~ λ rustup install 1.87.0 # targeted by godot-rust-utils
info: syncing channel updates for '1.87.0-x86_64-unknown-linux-gnu'
info: latest update on 2025-05-15, rust version 1.87.0 (17067e9ac 2025-05-09)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
1.87.0-x86_64-unknown-linux-gnu installed - rustc 1.87.0 (17067e9ac 2025-05-09)
info: default toolchain set to '1.87.0-x86_64-unknown-linux-gnu'
info: self-update is disabled for this build of rustup
info: any updates to rustup will need to be fetched with your system package manager
jotalea ~ λ rustup target add x86_64-pc-windows-gnu # for cross compiling
info: downloading component 'rust-std' for 'x86_64-pc-windows-gnu'
info: installing component 'rust-std' for 'x86_64-pc-windows-gnu'
jotalea ~ λ cd Descargas
jotalea ~ λ git clone https://codeberg.org/godot-dash/godot-dash.git
Clonando en 'godot-dash'...
remote: Enumerating objects: 21418, done.
remote: Counting objects: 100% (7605/7605), done.
remote: Compressing objects: 100% (1477/1477), done.
remote: Total 21418 (delta 6921), reused 6601 (delta 6096), pack-reused 13813 (from 1)
Recibiendo objetos: 100% (21418/21418), 192.81 MiB | 1.62 MiB/s, listo.
Resolviendo deltas: 100% (16237/16237), listo.
jotalea ~ λ cd godot-dash/rust/
jotalea ~ λ just build-debug # it errors out
# Clear previous build dir
rm -r bin/debug/ 2> /dev/null || true
# Setup artifact dir
mkdir --parents bin/debug/{linux,windows,android}
# Linux build
cargo build --target x86_64-unknown-linux-gnu
Updating crates.io index
...
Downloaded 25 crates (6.9MiB) in 0.68s (largest was `gdextension-api` at 2.9MiB)
...
Compiling godot v0.4.4
Compiling godot-rust-utils v0.1.0 (/home/jotalea/Descargas/godot-dash/rust)
error[E0658]: `let` expressions in this position are unstable
--> src/selection.rs:214:20
|
214 | if let Some(first_ref) = self.first.clone()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #53667 https://github.com/rust-lang/rust/issues/53667 for more information
For more information about this error, try `rustc --explain E0658`.
error: could not compile `godot-rust-utils` (lib) due to 1 previous error
error: Recipe `build-debug` failed on line 7 with exit code 101
jotalea ~ λ vi src/selection.rs
jotalea ~ λ sed -n "202,232p" src/selection.rs # i did these changes
#[func]
/// Like [method Selection.map_generic], but returns another [Selection].
/// This implies `method` needs to return a [Node2D].
fn map(&self, method: Callable) -> Gd<Self> {
let mut first: Option<PathRef> = None;
let inner: HashSet<PathRef> = self
.inner
.clone()
.iter()
.flat_map(|path_ref| {
let node_ref = path_ref.clone().into_ref();
let new_node_ref = method.call(vslice![node_ref]).to::<Gd<Node2D>>();
if self.first
.as_ref()
.and_then(|node_ref| node_ref.clone().into_ref())
.map_or(false, |orig_first| Some(orig_first) == node_ref)
{
first = Some(PathRef::from_ref(new_node_ref.clone()));
}
Some(PathRef::from_ref(new_node_ref))
/*
let node_ref = path_ref.clone().into_ref();
let new_node_ref = method.call(vslice![node_ref]).to::<Gd<Node2D>>();
if let Some(first_ref) = self.first.clone()
&& first_ref.clone().into_ref() == node_ref
{
first = Some(PathRef::from_ref(new_node_ref.clone()));
}
Some(PathRef::from_ref(new_node_ref))
*/
jotalea ~ λ vi justfile # i disabled Android crosscompilation because i won't use it
jotalea ~ λ just build-debug
# Clear previous build dir
rm -r bin/debug/ 2> /dev/null || true
# Setup artifact dir
mkdir --parents bin/debug/{linux,windows,android}
# Linux build
cargo build --target x86_64-unknown-linux-gnu
Compiling godot-bindings v0.4.4
...
Compiling godot-cell v0.4.4
Compiling godot-ffi v0.4.4
Compiling godot-core v0.4.4
Compiling godot v0.4.4
Compiling godot-rust-utils v0.1.0 (/home/jotalea/Descargas/godot-dash/rust)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.48s
mv target/x86_64-unknown-linux-gnu/debug/libgodot_rust_utils.so bin/debug/linux/
...
# Cleanup
cargo clean
Removed 2637 files, 1.3GiB total
```