%__cargo        %_bindir/cargo

%rust_prep() \
    mkdir -p .cargo \
    cat >> .cargo/config.toml <<EOF \
[source.crates-io] \
replace-with = "vendored-sources" \
\
[source.vendored-sources] \
directory = "vendor" \
\
[term] \
verbose = true \
quiet = false \
\
[install] \
root = "%{buildroot}%{_prefix}" \
\
[profile.release] \
strip = false \
EOF

%rust_build \
    export RUSTFLAGS="${RUSTFLAGS} -g" \
    cargo build --release %{?_smp_mflags} --offline

%rust_install(t:) \
    to_dir=%{-t*}%{!-t:%_bindir} \
    if [ %# -gt 0 ]; then \
        for name in %*; do \
            install -Dm 755 "target/release/$name" "%buildroot$to_dir/$name" \
        done \
    else \
        install -Dm 755 target/release/%name "%buildroot$to_dir/%name" \
    fi

%rust_test \
    export RUSTFLAGS="${RUSTFLAGS}" \
    cargo test --release %{?_smp_mflags} --no-fail-fast
