diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies new file mode 100644 index 00000000..dbd1c10d --- /dev/null +++ b/.flutter-plugins-dependencies @@ -0,0 +1 @@ +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"path_provider_foundation","path":"/home/icota/.pub-cache/hosted/pub.dev/path_provider_foundation-2.5.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"rust_lib_tor","path":"/home/icota/Code/tor/rust_builder/","native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"path_provider_android","path":"/home/icota/.pub-cache/hosted/pub.dev/path_provider_android-2.2.22/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"rust_lib_tor","path":"/home/icota/Code/tor/rust_builder/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"path_provider_foundation","path":"/home/icota/.pub-cache/hosted/pub.dev/path_provider_foundation-2.5.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"rust_lib_tor","path":"/home/icota/Code/tor/rust_builder/","native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"path_provider_linux","path":"/home/icota/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"rust_lib_tor","path":"/home/icota/Code/tor/rust_builder/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"path_provider_windows","path":"/home/icota/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"rust_lib_tor","path":"/home/icota/Code/tor/rust_builder/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[]},"dependencyGraph":[{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"rust_lib_tor","dependencies":[]}],"date_created":"2026-02-19 09:24:05.451601","version":"3.35.7","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7f1056d3..0a3097f0 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,7 @@ migrate_working_dir/ build/ rust/target/.rustc_info.json -rust/target/debug \ No newline at end of file +rust/target/debug + +# direnv +.direnv/ diff --git a/.reuse/dep5 b/.reuse/dep5 index e3101a54..86caaa07 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -11,6 +11,18 @@ Files: lib/generated* Copyright: 2024 Foundation Devices Inc. License: MIT +Files: lib/src/rust/* +Copyright: 2024 Foundation Devices Inc. +License: MIT + +Files: rust/src/frb_generated.rs +Copyright: 2024 Foundation Devices Inc. +License: MIT + +Files: .flutter-plugins-dependencies +Copyright: 2024 Foundation Devices Inc. +License: MIT + Files: example/linux/flutter/generated* Copyright: 2024 Foundation Devices Inc. License: MIT @@ -38,3 +50,7 @@ License: MIT Files: flake.lock Copyright: 2024 Foundation Devices Inc. License: MIT + +Files: android/.gradle/* +Copyright: 2024 Foundation Devices Inc. +License: MIT diff --git a/analysis_options.yaml b/analysis_options.yaml index 193ecf6c..8db9afb3 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -8,4 +8,5 @@ include: package:flutter_lints/flutter.yaml analyzer: exclude: - 'lib/generated*' - - 'cargokit' \ No newline at end of file + - 'lib/src/rust/**' + - 'cargokit/**' \ No newline at end of file diff --git a/android/.gitignore b/android/.gitignore index a499193d..52d44cbf 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +# SPDX-FileCopyrightText: 2024 Foundation Devices Inc # # SPDX-License-Identifier: MIT diff --git a/android/build.gradle b/android/build.gradle index 0ca96f2c..c9274070 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,7 +4,7 @@ // The Android Gradle Plugin builds the native code with the Android NDK. -group 'com.foundationdevices.tor' +group 'com.flutter_rust_bridge.rust_lib_tor' version '1.0' buildscript { @@ -15,7 +15,7 @@ buildscript { dependencies { // The Android Gradle Plugin knows how to build native code with the NDK. - classpath 'com.android.tools.build:gradle:8.12.1' + classpath 'com.android.tools.build:gradle:7.3.0' } } @@ -30,11 +30,18 @@ apply plugin: 'com.android.library' android { if (project.android.hasProperty("namespace")) { - namespace 'com.foundationdevices.tor' + namespace 'com.flutter_rust_bridge.rust_lib_tor' } + // Bumping the plugin compileSdkVersion requires all clients of this plugin // to bump the version in their app. - compileSdkVersion 36 + compileSdkVersion 33 + + // Use the NDK version + // declared in /android/app/build.gradle file of the Flutter project. + // Replace it with a version number if this plugin requires a specfic NDK version. + // (e.g. ndkVersion "23.1.7779620") + ndkVersion android.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -42,13 +49,12 @@ android { } defaultConfig { - minSdkVersion 16 + minSdkVersion 19 } } apply from: "../cargokit/gradle/plugin.gradle" - cargokit { manifestDir = "../rust" - libname = "tor" -} \ No newline at end of file + libname = "rust_lib_tor" +} diff --git a/android/settings.gradle b/android/settings.gradle index 44ad3e46..69e2430f 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,5 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +// SPDX-FileCopyrightText: 2024 Foundation Devices Inc // // SPDX-License-Identifier: MIT -rootProject.name = 'tor' +rootProject.name = 'rust_lib_backup' diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index db722d2e..a04fa5ba 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,9 +1,9 @@ + package="com.flutter_rust_bridge.rust_lib_backup"> diff --git a/cargokit/.github/workflows/check_and_lint.yml b/cargokit/.github/workflows/check_and_lint.yml deleted file mode 100644 index 70ba64e3..00000000 --- a/cargokit/.github/workflows/check_and_lint.yml +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - -on: - pull_request: - push: - branches: - - main - -name: Check and Lint - -jobs: - Flutter: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: dart-lang/setup-dart@v1 - - name: Pub Get - run: dart pub get --no-precompile - working-directory: build_tool - - name: Dart Format - run: dart format . --output=none --set-exit-if-changed - working-directory: build_tool - - name: Analyze - run: dart analyze - working-directory: build_tool - - name: Test - run: dart test - working-directory: build_tool diff --git a/cargokit/.github/workflows/test_example_plugin_build.yml b/cargokit/.github/workflows/test_example_plugin_build.yml deleted file mode 100644 index 9c7ad253..00000000 --- a/cargokit/.github/workflows/test_example_plugin_build.yml +++ /dev/null @@ -1,86 +0,0 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - -on: - pull_request: - push: - branches: - - main - -name: Test Example Plugin - -jobs: - Build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: - - ubuntu-latest - - macOS-latest - - windows-latest - build_mode: - - debug - - profile - - release - env: - EXAMPLE_DIR: "a b/hello_rust_ffi_plugin/example" - CARGOKIT_VERBOSE: 1 - steps: - - name: Extract branch name - shell: bash - run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT - id: extract_branch - - name: Setup Repository - shell: bash - run: | - mkdir "a b" # Space is intentional - cd "a b" - git config --global user.email "you@example.com" - git config --global user.name "Your Name" - # "advanced" branch has extra iOS flavor and uses rust nightly for release builds - git clone -b advanced https://github.com/irondash/hello_rust_ffi_plugin - cd hello_rust_ffi_plugin - git subtree pull --prefix cargokit https://github.com/irondash/cargokit.git ${{ steps.extract_branch.outputs.branch }} --squash - - uses: subosito/flutter-action@v1 - with: - channel: "stable" - - name: Install GTK - if: (matrix.os == 'ubuntu-latest') - run: sudo apt-get update && sudo apt-get install libgtk-3-dev - - name: Install ninja-build - if: (matrix.os == 'ubuntu-latest') - run: sudo apt-get update && sudo apt-get install ninja-build - - name: Build Linux (${{ matrix.build_mode }}) - if: matrix.os == 'ubuntu-latest' - shell: bash - working-directory: ${{ env.EXAMPLE_DIR }} - run: flutter build linux --${{ matrix.build_mode }} -v - - name: Build macOS (${{ matrix.build_mode }}) - if: matrix.os == 'macos-latest' - shell: bash - working-directory: ${{ env.EXAMPLE_DIR }} - run: flutter build macos --${{ matrix.build_mode }} -v - - name: Build iOS (${{ matrix.build_mode }}) - if: matrix.os == 'macos-latest' - shell: bash - working-directory: ${{ env.EXAMPLE_DIR }} - run: flutter build ios --${{ matrix.build_mode }} --no-codesign -v - - name: Build iOS (${{ matrix.build_mode }}) - flavor1 - if: matrix.os == 'macos-latest' - shell: bash - working-directory: ${{ env.EXAMPLE_DIR }} - run: flutter build ios --flavor flavor1 --${{ matrix.build_mode }} --no-codesign -v - - name: Build Windows (${{ matrix.build_mode }}) - if: matrix.os == 'windows-latest' - shell: bash - working-directory: ${{ env.EXAMPLE_DIR }} - run: flutter build windows --${{ matrix.build_mode }} -v - - name: Build Android (${{ matrix.build_mode }}) - shell: bash - working-directory: ${{ env.EXAMPLE_DIR }} - run: | - export JAVA_HOME=$JAVA_HOME_11_X64 - flutter build apk --${{ matrix.build_mode }} -v - diff --git a/cargokit/.gitignore b/cargokit/.gitignore index 7930d72e..cf7bb868 100644 --- a/cargokit/.gitignore +++ b/cargokit/.gitignore @@ -1,7 +1,3 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - target .dart_tool *.iml diff --git a/cargokit/LICENSE b/cargokit/LICENSE index 54a7d589..d33a5fea 100644 --- a/cargokit/LICENSE +++ b/cargokit/LICENSE @@ -1,3 +1,6 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + Copyright 2022 Matej Knopp ================================================================================ diff --git a/cargokit/README b/cargokit/README index 8ae4a073..398474db 100644 --- a/cargokit/README +++ b/cargokit/README @@ -1,3 +1,6 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + Experimental repository to provide glue for seamlessly integrating cargo build with flutter plugins and packages. diff --git a/cargokit/README.license b/cargokit/README.license deleted file mode 100644 index 7b44746f..00000000 --- a/cargokit/README.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - -SPDX-License-Identifier: MIT diff --git a/cargokit/build_pod.sh b/cargokit/build_pod.sh index b826ee9e..ed0e0d98 100755 --- a/cargokit/build_pod.sh +++ b/cargokit/build_pod.sh @@ -1,9 +1,4 @@ #!/bin/sh - -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - set -e BASEDIR=$(dirname "$0") @@ -54,10 +49,10 @@ do fi done -"$BASEDIR/run_build_tool.sh" build-pod "$@" +sh "$BASEDIR/run_build_tool.sh" build-pod "$@" # Make a symlink from built framework to phony file, which will be used as input to # build script. This should force rebuild (podspec currently doesn't support alwaysOutOfDate # attribute on custom build phase) -ln -Fs "$OBJROOT/XCBuildData/build.db" "${BUILT_PRODUCTS_DIR}/cargokit_phony" -ln -Fs "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}" "${BUILT_PRODUCTS_DIR}/cargokit_phony_out" +ln -fs "$OBJROOT/XCBuildData/build.db" "${BUILT_PRODUCTS_DIR}/cargokit_phony" +ln -fs "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}" "${BUILT_PRODUCTS_DIR}/cargokit_phony_out" diff --git a/cargokit/build_tool/README.md b/cargokit/build_tool/README.md index b81c9700..a878c279 100644 --- a/cargokit/build_tool/README.md +++ b/cargokit/build_tool/README.md @@ -1,8 +1,5 @@ - +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin A sample command-line application with an entrypoint in `bin/`, library code in `lib/`, and example unit test in `test/`. diff --git a/cargokit/build_tool/analysis_options.yaml b/cargokit/build_tool/analysis_options.yaml index d5ed3547..0e16a8b0 100644 --- a/cargokit/build_tool/analysis_options.yaml +++ b/cargokit/build_tool/analysis_options.yaml @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT +# This is copied from Cargokit (which is the official way to use it currently) +# Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin # This file configures the static analysis results for your project (errors, # warnings, and lints). diff --git a/cargokit/build_tool/bin/build_tool.dart b/cargokit/build_tool/bin/build_tool.dart index f2879eeb..268eb524 100644 --- a/cargokit/build_tool/bin/build_tool.dart +++ b/cargokit/build_tool/bin/build_tool.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'package:build_tool/build_tool.dart' as build_tool; diff --git a/cargokit/build_tool/lib/build_tool.dart b/cargokit/build_tool/lib/build_tool.dart index b0e25c9f..7c1bb750 100644 --- a/cargokit/build_tool/lib/build_tool.dart +++ b/cargokit/build_tool/lib/build_tool.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'src/build_tool.dart' as build_tool; diff --git a/cargokit/build_tool/lib/src/android_environment.dart b/cargokit/build_tool/lib/src/android_environment.dart index 32ae61a6..15fc9eed 100644 --- a/cargokit/build_tool/lib/src/android_environment.dart +++ b/cargokit/build_tool/lib/src/android_environment.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; import 'dart:isolate'; @@ -119,7 +118,7 @@ class AndroidEnvironment { final cxxKey = 'CXX_${target.rust}'; final cxxValue = path.join(toolchainPath, 'clang++$exe'); - final cxxfFlagsKey = 'CXXFLAGS_${target.rust}'; + final cxxFlagsKey = 'CXXFLAGS_${target.rust}'; final cxxFlagsValue = targetArg; final linkerKey = @@ -156,7 +155,7 @@ class AndroidEnvironment { ccKey: ccValue, cfFlagsKey: cFlagsValue, cxxKey: cxxValue, - cxxfFlagsKey: cxxFlagsValue, + cxxFlagsKey: cxxFlagsValue, ranlibKey: ranlibValue, rustFlagsKey: rustFlagsValue, linkerKey: selfPath, @@ -190,17 +189,7 @@ class AndroidEnvironment { if (rustFlags.isNotEmpty) { rustFlags = '$rustFlags\x1f'; } - rustFlags = '$rustFlags-L\x1f$workaroundDir\x1f'; - - const pageSizeArgs = [ - "-C", - "link-arg=-Wl,--hash-style=both", - "-C", - "link-arg=-Wl,-z,max-page-size=16384" - ]; - final pageSizeArgsString = pageSizeArgs.join("\x1f"); - - rustFlags = '$rustFlags$pageSizeArgsString'; + rustFlags = '$rustFlags-L\x1f$workaroundDir'; return rustFlags; } } diff --git a/cargokit/build_tool/lib/src/artifacts_provider.dart b/cargokit/build_tool/lib/src/artifacts_provider.dart index 6a24f209..e608cece 100644 --- a/cargokit/build_tool/lib/src/artifacts_provider.dart +++ b/cargokit/build_tool/lib/src/artifacts_provider.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; @@ -161,6 +160,27 @@ class ArtifactProvider { return res; } + static Future _get(Uri url, {Map? headers}) async { + int attempt = 0; + const maxAttempts = 10; + while (true) { + try { + return await get(url, headers: headers); + } on SocketException catch (e) { + // Try to detect reset by peer error and retry. + if (attempt++ < maxAttempts && + (e.osError?.errorCode == 54 || e.osError?.errorCode == 10054)) { + _log.severe( + 'Failed to download $url: $e, attempt $attempt of $maxAttempts, will retry...'); + await Future.delayed(Duration(seconds: 1)); + continue; + } else { + rethrow; + } + } + } + } + Future _tryDownloadArtifacts({ required String crateHash, required String fileName, @@ -171,11 +191,11 @@ class ArtifactProvider { final prefix = precompiledBinaries.uriPrefix; final url = Uri.parse('$prefix$crateHash/$fileName'); final signatureUrl = Uri.parse('$prefix$crateHash/$signatureFileName'); - final signature = await get(signatureUrl); _log.fine('Downloading signature from $signatureUrl'); + final signature = await _get(signatureUrl); if (signature.statusCode == 404) { _log.warning( - 'Precompiled binaries for available for crate hash $crateHash'); + 'Precompiled binaries not available for crate hash $crateHash ($fileName)'); return; } if (signature.statusCode != 200) { @@ -184,7 +204,7 @@ class ArtifactProvider { return; } _log.fine('Downloading binary from $url'); - final res = await get(url); + final res = await _get(url); if (res.statusCode != 200) { _log.severe('Failed to download binary $url: status ${res.statusCode}'); return; diff --git a/cargokit/build_tool/lib/src/build_cmake.dart b/cargokit/build_tool/lib/src/build_cmake.dart index b9a96bc0..6f3b2a4e 100644 --- a/cargokit/build_tool/lib/src/build_cmake.dart +++ b/cargokit/build_tool/lib/src/build_cmake.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/build_gradle.dart b/cargokit/build_tool/lib/src/build_gradle.dart index 4a9419de..7e61fcbb 100644 --- a/cargokit/build_tool/lib/src/build_gradle.dart +++ b/cargokit/build_tool/lib/src/build_gradle.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/build_pod.dart b/cargokit/build_tool/lib/src/build_pod.dart index 7da04ab7..8a9c0db5 100644 --- a/cargokit/build_tool/lib/src/build_pod.dart +++ b/cargokit/build_tool/lib/src/build_pod.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/build_tool.dart b/cargokit/build_tool/lib/src/build_tool.dart index 79a7515c..c8f36981 100644 --- a/cargokit/build_tool/lib/src/build_tool.dart +++ b/cargokit/build_tool/lib/src/build_tool.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/builder.dart b/cargokit/build_tool/lib/src/builder.dart index 18b6663e..84c46e4f 100644 --- a/cargokit/build_tool/lib/src/builder.dart +++ b/cargokit/build_tool/lib/src/builder.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'package:collection/collection.dart'; import 'package:logging/logging.dart'; diff --git a/cargokit/build_tool/lib/src/cargo.dart b/cargokit/build_tool/lib/src/cargo.dart index 8b882b20..0d8958ff 100644 --- a/cargokit/build_tool/lib/src/cargo.dart +++ b/cargokit/build_tool/lib/src/cargo.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/crate_hash.dart b/cargokit/build_tool/lib/src/crate_hash.dart index 088e2e95..0c4d88d1 100644 --- a/cargokit/build_tool/lib/src/crate_hash.dart +++ b/cargokit/build_tool/lib/src/crate_hash.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:convert'; import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/environment.dart b/cargokit/build_tool/lib/src/environment.dart index 48867f93..996483a1 100644 --- a/cargokit/build_tool/lib/src/environment.dart +++ b/cargokit/build_tool/lib/src/environment.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/logging.dart b/cargokit/build_tool/lib/src/logging.dart index b7031f69..5edd4fd1 100644 --- a/cargokit/build_tool/lib/src/logging.dart +++ b/cargokit/build_tool/lib/src/logging.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/options.dart b/cargokit/build_tool/lib/src/options.dart index f152a115..22aef1d3 100644 --- a/cargokit/build_tool/lib/src/options.dart +++ b/cargokit/build_tool/lib/src/options.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/precompile_binaries.dart b/cargokit/build_tool/lib/src/precompile_binaries.dart index 9ca5b9cd..c27f4195 100644 --- a/cargokit/build_tool/lib/src/precompile_binaries.dart +++ b/cargokit/build_tool/lib/src/precompile_binaries.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/rustup.dart b/cargokit/build_tool/lib/src/rustup.dart index 955d1d33..0ac8d086 100644 --- a/cargokit/build_tool/lib/src/rustup.dart +++ b/cargokit/build_tool/lib/src/rustup.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; @@ -64,10 +63,14 @@ class Rustup { } final res = runCommand("rustup", ['toolchain', 'list']); + + // To list all non-custom toolchains, we need to filter out lines that + // don't start with "stable", "beta", or "nightly". + Pattern nonCustom = RegExp(r"^(stable|beta|nightly)"); final lines = res.stdout .toString() .split('\n') - .where((e) => e.isNotEmpty) + .where((e) => e.isNotEmpty && e.startsWith(nonCustom)) .map(extractToolchainName) .toList(growable: true); diff --git a/cargokit/build_tool/lib/src/target.dart b/cargokit/build_tool/lib/src/target.dart index 4dda2dc1..6fbc58b6 100644 --- a/cargokit/build_tool/lib/src/target.dart +++ b/cargokit/build_tool/lib/src/target.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/lib/src/util.dart b/cargokit/build_tool/lib/src/util.dart index db42adf6..8bb6a872 100644 --- a/cargokit/build_tool/lib/src/util.dart +++ b/cargokit/build_tool/lib/src/util.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:convert'; import 'dart:io'; @@ -41,6 +40,44 @@ class CommandFailedException implements Exception { } } +class TestRunCommandArgs { + final String executable; + final List arguments; + final String? workingDirectory; + final Map? environment; + final bool includeParentEnvironment; + final bool runInShell; + final Encoding? stdoutEncoding; + final Encoding? stderrEncoding; + + TestRunCommandArgs({ + required this.executable, + required this.arguments, + this.workingDirectory, + this.environment, + this.includeParentEnvironment = true, + this.runInShell = false, + this.stdoutEncoding, + this.stderrEncoding, + }); +} + +class TestRunCommandResult { + TestRunCommandResult({ + this.pid = 1, + this.exitCode = 0, + this.stdout = '', + this.stderr = '', + }); + + final int pid; + final int exitCode; + final String stdout; + final String stderr; +} + +TestRunCommandResult Function(TestRunCommandArgs args)? testRunCommandOverride; + ProcessResult runCommand( String executable, List arguments, { @@ -51,6 +88,24 @@ ProcessResult runCommand( Encoding? stdoutEncoding = systemEncoding, Encoding? stderrEncoding = systemEncoding, }) { + if (testRunCommandOverride != null) { + final result = testRunCommandOverride!(TestRunCommandArgs( + executable: executable, + arguments: arguments, + workingDirectory: workingDirectory, + environment: environment, + includeParentEnvironment: includeParentEnvironment, + runInShell: runInShell, + stdoutEncoding: stdoutEncoding, + stderrEncoding: stderrEncoding, + )); + return ProcessResult( + result.pid, + result.exitCode, + result.stdout, + result.stderr, + ); + } log.finer('Running command $executable ${arguments.join(' ')}'); final res = Process.runSync( _resolveExecutable(executable), diff --git a/cargokit/build_tool/lib/src/verify_binaries.dart b/cargokit/build_tool/lib/src/verify_binaries.dart index 7bb71a07..2366b57b 100644 --- a/cargokit/build_tool/lib/src/verify_binaries.dart +++ b/cargokit/build_tool/lib/src/verify_binaries.dart @@ -1,6 +1,5 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin import 'dart:io'; diff --git a/cargokit/build_tool/pubspec.lock.license b/cargokit/build_tool/pubspec.lock.license deleted file mode 100644 index 7b44746f..00000000 --- a/cargokit/build_tool/pubspec.lock.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - -SPDX-License-Identifier: MIT diff --git a/cargokit/build_tool/pubspec.yaml b/cargokit/build_tool/pubspec.yaml index 973154a4..18c61e33 100644 --- a/cargokit/build_tool/pubspec.yaml +++ b/cargokit/build_tool/pubspec.yaml @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT +# This is copied from Cargokit (which is the official way to use it currently) +# Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin name: build_tool description: Cargokit build_tool. Facilitates the build of Rust crate during Flutter application build. diff --git a/cargokit/build_tool/test/builder_test.dart b/cargokit/build_tool/test/builder_test.dart deleted file mode 100644 index b10b8e30..00000000 --- a/cargokit/build_tool/test/builder_test.dart +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -import 'package:build_tool/src/builder.dart'; -import 'package:test/test.dart'; - -void main() { - test('parseBuildConfiguration', () { - var b = BuildEnvironment.parseBuildConfiguration('debug'); - expect(b, BuildConfiguration.debug); - - b = BuildEnvironment.parseBuildConfiguration('profile'); - expect(b, BuildConfiguration.profile); - - b = BuildEnvironment.parseBuildConfiguration('release'); - expect(b, BuildConfiguration.release); - - b = BuildEnvironment.parseBuildConfiguration('debug-dev'); - expect(b, BuildConfiguration.debug); - - b = BuildEnvironment.parseBuildConfiguration('profile'); - expect(b, BuildConfiguration.profile); - - b = BuildEnvironment.parseBuildConfiguration('profile-prod'); - expect(b, BuildConfiguration.profile); - - // fallback to release - b = BuildEnvironment.parseBuildConfiguration('unknown'); - expect(b, BuildConfiguration.release); - }); -} diff --git a/cargokit/build_tool/test/cargo_test.dart b/cargokit/build_tool/test/cargo_test.dart deleted file mode 100644 index 623fb4b8..00000000 --- a/cargokit/build_tool/test/cargo_test.dart +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -import 'package:build_tool/src/cargo.dart'; -import 'package:test/test.dart'; - -final _cargoToml = """ -[workspace] - -[profile.release] -lto = true -panic = "abort" -opt-level = "z" -# strip = "symbols" - -[package] -name = "super_native_extensions" -version = "0.1.0" -edition = "2021" -resolver = "2" - -[lib] -crate-type = ["cdylib", "staticlib"] -"""; - -void main() { - test('parseCargoToml', () { - final info = CrateInfo.parseManifest(_cargoToml); - expect(info.packageName, 'super_native_extensions'); - }); -} diff --git a/cargokit/build_tool/test/options_test.dart b/cargokit/build_tool/test/options_test.dart deleted file mode 100644 index c91db771..00000000 --- a/cargokit/build_tool/test/options_test.dart +++ /dev/null @@ -1,79 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -import 'package:build_tool/src/builder.dart'; -import 'package:build_tool/src/options.dart'; -import 'package:hex/hex.dart'; -import 'package:test/test.dart'; -import 'package:yaml/yaml.dart'; - -void main() { - test('parseCargoBuildOptions', () { - final yaml = """ -toolchain: nightly -extra_flags: - - -Z - # Comment here - - build-std=panic_abort,std -"""; - final node = loadYamlNode(yaml); - final options = CargoBuildOptions.parse(node); - expect(options.toolchain, Toolchain.nightly); - expect(options.flags, ['-Z', 'build-std=panic_abort,std']); - }); - - test('parsePrecompiledBinaries', () { - final yaml = """ -url_prefix: https://url-prefix -public_key: a4c3433798eb2c36edf2b94dbb4dd899d57496ca373a8982d8a792410b7f6445 -"""; - final precompiledBinaries = PrecompiledBinaries.parse(loadYamlNode(yaml)); - final key = HEX.decode( - 'a4c3433798eb2c36edf2b94dbb4dd899d57496ca373a8982d8a792410b7f6445'); - expect(precompiledBinaries.uriPrefix, 'https://url-prefix'); - expect(precompiledBinaries.publicKey.bytes, key); - }); - - test('parseCargokitOptions', () { - const yaml = ''' -cargo: - # For smalles binaries rebuilt the standard library with panic=abort - debug: - toolchain: nightly - extra_flags: - - -Z - # Comment here - - build-std=panic_abort,std - release: - toolchain: beta - -precompiled_binaries: - url_prefix: https://url-prefix - public_key: a4c3433798eb2c36edf2b94dbb4dd899d57496ca373a8982d8a792410b7f6445 -'''; - final options = CargokitCrateOptions.parse(loadYamlNode(yaml)); - expect(options.precompiledBinaries?.uriPrefix, 'https://url-prefix'); - final key = HEX.decode( - 'a4c3433798eb2c36edf2b94dbb4dd899d57496ca373a8982d8a792410b7f6445'); - expect(options.precompiledBinaries?.publicKey.bytes, key); - - final debugOptions = options.cargo[BuildConfiguration.debug]!; - expect(debugOptions.toolchain, Toolchain.nightly); - expect(debugOptions.flags, ['-Z', 'build-std=panic_abort,std']); - - final releaseOptions = options.cargo[BuildConfiguration.release]!; - expect(releaseOptions.toolchain, Toolchain.beta); - expect(releaseOptions.flags, []); - }); - - test('parseCargokitUserOptions', () { - const yaml = ''' -use_precompiled_binaries: false -verbose_logging: true -'''; - final options = CargokitUserOptions.parse(loadYamlNode(yaml)); - expect(options.usePrecompiledBinaries, false); - expect(options.verboseLogging, true); - }); -} diff --git a/cargokit/cmake/cargokit.cmake b/cargokit/cmake/cargokit.cmake index 54340e72..ddd05df9 100644 --- a/cargokit/cmake/cargokit.cmake +++ b/cargokit/cmake/cargokit.cmake @@ -1,7 +1,3 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - SET(cargokit_cmake_root "${CMAKE_CURRENT_LIST_DIR}/..") # Workaround for https://github.com/dart-lang/pub/issues/4010 @@ -9,7 +5,7 @@ get_filename_component(cargokit_cmake_root "${cargokit_cmake_root}" REALPATH) if(WIN32) # REALPATH does not properly resolve symlinks on windows :-/ - execute_process(COMMAND powershell -File "${CMAKE_CURRENT_LIST_DIR}/resolve_symlinks.ps1" "${cargokit_cmake_root}" OUTPUT_VARIABLE cargokit_cmake_root OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND powershell -ExecutionPolicy Bypass -File "${CMAKE_CURRENT_LIST_DIR}/resolve_symlinks.ps1" "${cargokit_cmake_root}" OUTPUT_VARIABLE cargokit_cmake_root OUTPUT_STRIP_TRAILING_WHITESPACE) endif() # Arguments @@ -54,6 +50,7 @@ function(apply_cargokit target manifest_dir lib_name any_symbol_name) else() set(SCRIPT_EXTENSION ".sh") set(IMPORT_LIB_EXTENSION "") + execute_process(COMMAND chmod +x "${cargokit_cmake_root}/run_build_tool${SCRIPT_EXTENSION}") endif() # Using generators in custom command is only supported in CMake 3.20+ @@ -79,6 +76,7 @@ function(apply_cargokit target manifest_dir lib_name any_symbol_name) ) endif() + set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/_phony_" PROPERTIES SYMBOLIC TRUE) if (TARGET ${target}) @@ -98,4 +96,4 @@ function(apply_cargokit target manifest_dir lib_name any_symbol_name) # Allow adding the output library to plugin bundled libraries set("${target}_cargokit_lib" ${OUTPUT_LIB} PARENT_SCOPE) -endfunction() \ No newline at end of file +endfunction() diff --git a/cargokit/cmake/resolve_symlinks.ps1 b/cargokit/cmake/resolve_symlinks.ps1 index 69cb97d6..2ac593a1 100644 --- a/cargokit/cmake/resolve_symlinks.ps1 +++ b/cargokit/cmake/resolve_symlinks.ps1 @@ -1,7 +1,3 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - function Resolve-Symlinks { [CmdletBinding()] [OutputType([string])] @@ -18,14 +14,21 @@ function Resolve-Symlinks { if ($realPath -and !$realPath.EndsWith($separator)) { $realPath += $separator } - $realPath += $part + + $realPath += $part.Replace('\', '/') + + # The slash is important when using Get-Item on Drive letters in pwsh. + if (-not($realPath.Contains($separator)) -and $realPath.EndsWith(':')) { + $realPath += '/' + } + $item = Get-Item $realPath - if ($item.Target) { - $realPath = $item.Target.Replace('\', '/') + if ($item.LinkTarget) { + $realPath = $item.LinkTarget.Replace('\', '/') } } $realPath } -$path=Resolve-Symlinks -Path $args[0] +$path = Resolve-Symlinks -Path $args[0] Write-Host $path diff --git a/cargokit/docs/architecture.md b/cargokit/docs/architecture.md deleted file mode 100644 index 6a380211..00000000 --- a/cargokit/docs/architecture.md +++ /dev/null @@ -1,110 +0,0 @@ - - -# Cargokit Architecture - -Note: This is mostly relevant for plugins authors that want to see a bit under the hood rather then just following a tutorial. - -In ideal conditions the end-developer using the plugin should not even be aware of Cargokit existence. - -## Integration - -Cargokit is meant to be included in Flutter plugin (or application) that contains the Rust crate to be built during the Flutter build process. - -Cargokit can be either incuded as git submodule or git subtree (required for plugins - as pub does not support submodules for git dependencies). - -For a step by step tutorial on integrating Cargokit with a Flutter plugin see https://matejknopp.com/post/flutter_plugin_in_rust_with_no_prebuilt_binaries/. - -## build_tool - -Build tool is the core of cargokit. It is a Dart command line package that facilitates the build of Rust crate. It is invoked during the Flutter build process to build (or download) Rust artifacts, but it can be also used as a standalone tool. - -It handles the following commands: - -### build-cmake - -This is invoked from `cargokit.cmake` and it is used to build the Rust crate into a dynamic library on Linux and Windows (which use CMake as build system). - -The command takes no additional arguments, everything is controlled during environment variables set by `cargokit.cmake`. - -### build-gradle - -This is invoked from `plugin.gradle` and it is used to build the Rust crate into a dynamic library on Android. The command takes no additional arguments, everything is controlled during environment variables set by `plugin.gradle`. - -The build_tool installs NDK if needed, configures the Rust environment for cross compilation and then invokes `cargo build` with appropriate arguments and environment variables. - -The build-tool also acts a linker driver. - -### build-pod - -This is invoked from plugin's podspec `script_phase` through `build_pod.sh`. Bundle tool will build the Rust crate into a static library that gets linked into the plugin Framework. In this case must have `:execution_position` set to `:before_compile`. - -Cargokit will build binaries for all active architectures from XCode build and lipo them togherer. - -When using Cargokit to integrate Rust code with an application (not a plugin) you can also configure the `Cargo.toml` to just build a dynamic library. When Cargokit finds that the crate only built a dylib and no static lib, it will attempt to replace the Cocoapod framework binary with the dylib. In this case the script `:execution_position` must be set to `:after_compile`. This is *not* recommended for plugins and it's quite experimental. - -### gen-key, precompile-binaries, verify-binaries - -These are used as when providing precompiled binaries for Plugin. See [precompiled_binaries.md](precompiled_binaries.md) for more information. - -## Launching the build_tool during build. - -During Flutter build, the build tool can not be launched directly using `dart run`. Rather it is launched through `run_build_tool.sh` and `run_build_tool.cmd`. Because the `build_tool` is shipped as part of plugin, we generally don't want to write into the plugin directory during build, which would happen if the `build_tool` was simply invoked through `dart run` (For example the `.dart_tool/package_config.json` file would get written inside the `build_tool` directory). - -Instead the `run_build_tool` script creates a minimal Dart command line package in the build directory and references the `build_tool` as package. That way the `.dart_tool/package_config.json` file is created in the temporary build folder and not in the plugin itself. The script also precompiles the Dart code to speed up subsequent invocations. - -## Configuring Cargokit - -### Configuration for the Rust crate - -Cargokit can be configured through a `cargokit.yaml` file, which can be used to control the build of the Rust package and is placed into the Rust crate next to `Cargo.toml`. - -Here is an example `cargokit.yaml` with comments: -```yaml -cargo: - debug: # Configuration of cargo execution during debug builds - toolchain: stable # default - release: # Configuration of cargo execution for release builds - toolchain: nightly # rustup will be invoked with nightly toolchain - extra_flags: # extra arguments passed to cargo build - - -Z - - build-std=panic_abort,std - -# If crate ships with precompiled binaries, they can be configured here. -precompiled_binaries: - # Uri prefix used when downloading precompiled binaries. - url_prefix: https://github.com/superlistapp/super_native_extensions/releases/download/precompiled_ - - # Public key for verifying downloaded precompiled binaries. - public_key: 3a257ef1c7d72d84225ac4658d24812ada50a7a7a8a2138c2a91353389fdc514 -``` - -### Configuration for the application consuming the plugin - -A `cargokit_options.yaml` file can also be placed by developer using plugin to the root of the application package. In which case the file can be used to specify following options: - -```yaml -# Enables verbose logging of Cargokit during build -verbose_logging: true - -# Opts out of using precompiled binaries. If crate has configured -# and deployed precompiled binaries, these will be by default used whenever Rustup -# is not installed. With `use_precompiled_binaries` set to false, the build will -# instead be aborted prompting user to install Rustup. -use_precompiled_binaries: false -``` - -## Detecting Rustup - -When the plugin doesn't come with precompiled libraries (or user opt-out), `build_tool` will need to invoke Rustup during build to ensure that required Rust targets and toolchain are installed for current build and to build the Rust crate. - -Cargokit will attempt to detect Rustup in the default Rustup installation location (`~/.cargo/rustup`) as well as in PATH. This is done so that if user install Rustup but doesn't properly configure PATH, Cargokit will still work. - -If `build_tool` doesn't find Rustup, it will about the build with a message showing instructions to install Rustup specific to current platform. - -On macOS it will also detect a homebrew Rust installation in PATH and will prompt user to call `brew unlink rust` first to remove homebrew Rust installation from PATH, because it may interfere with Rustup. - -Homebrew Rust installation can not be used by Cargokit, because it can only build for host platform. Cargokit needs to be able to cross compile the Rust crate for iOS and Android and thus needs full Rustup installation. diff --git a/cargokit/docs/precompiled_binaries.md b/cargokit/docs/precompiled_binaries.md deleted file mode 100644 index 9b85b7e5..00000000 --- a/cargokit/docs/precompiled_binaries.md +++ /dev/null @@ -1,101 +0,0 @@ - - -# Precompiled Binaries - -Because Cargokit builds the Rust crate during Flutter build, it is inherently -dependend on the Rust toolchain being installed on the developer's machine. - -To decrease the friction, it is possible for Cargokit to use precompiled binaries instead. - -This is how the process of using precompiled binaries looks from the perspective of the build on developer machine: - -1. Cargokit checks if there is `cargokit_options.yaml` file in the root folder of target application. If there is one, it will be checked for `use_precompiled_binaries` options to see if user opted out of using precompiled binaries. In which case Cargokit will insist on building from source. Cargokit will also build from source if the configuration file is absent, but user has Rustup installed. - -2. Cargokit checks if there is `cargokit.yaml` file placed in the Rust crate. If there is one, it will be checked for `precompiled_binaries` section to see if crate supports precompiled binaries. The configuration section must contain a public key and URL prefix. - -3. Cargokit computes a `crate-hash`. This is a SHA256 hash value computed from all Rust files inside crate, `Cargo.toml`, `Cargo.lock` and `cargokit.yaml`. This uniquely identifies the crate and it is used to find the correct precompiled binaries. - -4. Cargokit will attempt to download the precompiled binaries for target platform and `crate_hash` combination and a signature file for each downloaded binary. If download succeeds, the binary content will be verified against the signature and public key included in `cargokit.yaml` (which is part of Rust crate and thus part of published Flutter package). - -5. If the verification succeeds, the precompiled binaries will be used. Otherwise the binary will be discarded and Cargokit will insist on building from source. - -## Providing precompiled binaries - -Note that this assumes that precompiled binaries will be generated during github actions and deployed as github releases. - -### Use `build_tool` to generate a key-pair: - -``` -dart run build_tool gen-key -``` - -This will print the private key and public key. Store the private key securely. It needs to be provided as a secret to github action. - -The public key should be included in `cargokit.yaml` file in the Rust crate. - -### Provide a `cargokit.yaml` file in the Rust crate - -The file must be placed alongside Cargo.toml. - -```yaml -precompiled_binaries: - # Uri prefix used when downloading precompiled binaries. - url_prefix: https://github.com///releases/download/precompiled_ - - # Public key for verifying downloaded precompiled binaries. - public_key: -``` - -### Configure a github action to build and upload precompiled binaries. - -The github action should be run at every commit to main branch (and possibly other branches). - -The action needs two secrets - private key for signing binaries and GitHub token for uploading binaries as releases. Here is example action that precompiles and uploads binaries for all supported targets. - -```yaml -on: - push: - branches: [ main ] - -name: Precompile Binaries - -jobs: - Precompile: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: - - ubuntu-latest - - macOS-latest - - windows-latest - steps: - - uses: actions/checkout@v2 - - uses: dart-lang/setup-dart@v1 - - name: Install GTK - if: (matrix.os == 'ubuntu-latest') - run: sudo apt-get update && sudo apt-get install libgtk-3-dev - - name: Precompile - if: (matrix.os == 'macOS-latest') || (matrix.os == 'windows-latest') - run: dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=superlistapp/super_native_extensions - working-directory: super_native_extensions/cargokit/build_tool - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} - PRIVATE_KEY: ${{ secrets.RELEASE_PRIVATE_KEY }} - - name: Precompile (with Android) - if: (matrix.os == 'ubuntu-latest') - run: dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=superlistapp/super_native_extensions --android-sdk-location=/usr/local/lib/android/sdk --android-ndk-version=24.0.8215888 --android-min-sdk-version=23 - working-directory: super_native_extensions/cargokit/build_tool - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} - PRIVATE_KEY: ${{ secrets.RELEASE_PRIVATE_KEY }} -``` - -By default the `built_tool precompile-binaries` commands build and uploads the binaries for all targets buildable from current host. This can be overriden using the `--target ` argument. - -Android binaries will be built when `--android-sdk-location` and `--android-ndk-version` arguments are provided. - diff --git a/cargokit/gradle/plugin.gradle b/cargokit/gradle/plugin.gradle index b6d9ff00..4af35ee0 100644 --- a/cargokit/gradle/plugin.gradle +++ b/cargokit/gradle/plugin.gradle @@ -1,3 +1,6 @@ +/// This is copied from Cargokit (which is the official way to use it currently) +/// Details: https://fzyzcjy.github.io/flutter_rust_bridge/manual/integrate/builtin + import java.nio.file.Paths import org.apache.tools.ant.taskdefs.condition.Os @@ -56,6 +59,12 @@ abstract class CargoKitBuildTask extends DefaultTask { def rootProjectDir = project.rootProject.projectDir + if (!Os.isFamily(Os.FAMILY_WINDOWS)) { + project.exec { + commandLine 'chmod', '+x', path + } + } + project.exec { executable path args "build-gradle" @@ -83,7 +92,7 @@ class CargoKitPlugin implements Plugin { _findFlutterPlugin(rootProject.childProjects) } - private Plugin _findFlutterPlugin(Map projects) { + private Plugin _findFlutterPlugin(Map projects) { for (project in projects) { for (plugin in project.value.getPlugins()) { if (plugin.class.name == "com.flutter.gradle.FlutterPlugin") { @@ -111,7 +120,11 @@ class CargoKitPlugin implements Plugin { def cargoBuildDir = "${project.buildDir}/build" - plugin.project.android.applicationVariants.all { variant -> + // Determine if the project is an application or library + def isApplication = plugin.project.plugins.hasPlugin('com.android.application') + def variants = isApplication ? plugin.project.android.applicationVariants : plugin.project.android.libraryVariants + + variants.all { variant -> final buildType = variant.buildType.name @@ -163,4 +176,4 @@ class CargoKitPlugin implements Plugin { } } } -} \ No newline at end of file +} diff --git a/cargokit/run_build_tool.cmd b/cargokit/run_build_tool.cmd old mode 100644 new mode 100755 index 29556103..c45d0aa8 --- a/cargokit/run_build_tool.cmd +++ b/cargokit/run_build_tool.cmd @@ -8,7 +8,7 @@ SET BASEDIR=%~dp0 if not exist "%CARGOKIT_TOOL_TEMP_DIR%" ( mkdir "%CARGOKIT_TOOL_TEMP_DIR%" ) -cd "%CARGOKIT_TOOL_TEMP_DIR%" +cd /D "%CARGOKIT_TOOL_TEMP_DIR%" SET BUILD_TOOL_PKG_DIR=%BASEDIR%build_tool SET DART=%FLUTTER_ROOT%\bin\cache\dart-sdk\bin\dart @@ -76,8 +76,16 @@ If %ERRORLEVEL% neq 0 ( REM There is no CUR_PACKAGE_INFO it was renamed in previous step to %PREV_PACKAGE_INFO% REM which means we need to do pub get and precompile if not exist "%PRECOMPILED%" ( + echo Running pub get in "%cd%" "%DART%" pub get --no-precompile "%DART%" compile kernel bin/build_tool_runner.dart ) "%DART%" "%PRECOMPILED%" %* + +REM 253 means invalid snapshot version. +If %ERRORLEVEL% equ 253 ( + "%DART%" pub get --no-precompile + "%DART%" compile kernel bin/build_tool_runner.dart + "%DART%" "%PRECOMPILED%" %* +) diff --git a/cargokit/run_build_tool.cmd.license b/cargokit/run_build_tool.cmd.license deleted file mode 100644 index 7b44746f..00000000 --- a/cargokit/run_build_tool.cmd.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - -SPDX-License-Identifier: MIT diff --git a/cargokit/run_build_tool.sh b/cargokit/run_build_tool.sh index eada363e..24b0ed89 100755 --- a/cargokit/run_build_tool.sh +++ b/cargokit/run_build_tool.sh @@ -1,8 +1,4 @@ -#!/bin/bash - -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT +#!/usr/bin/env bash set -e @@ -46,6 +42,12 @@ void main(List args) { } EOF +# Create alias for `shasum` if it does not exist and `sha1sum` exists +if ! [ -x "$(command -v shasum)" ] && [ -x "$(command -v sha1sum)" ]; then + shopt -s expand_aliases + alias shasum="sha1sum" +fi + # Dart run will not cache any package that has a path dependency, which # is the case for our build_tool_runner. So instead we precompile the package # ourselves. @@ -68,7 +70,6 @@ if [ -f "$PACKAGE_HASH_FILE" ]; then fi fi - # Run pub get if needed. if [ ! -f "$PACKAGE_HASH_FILE" ]; then "$DART" pub get --no-precompile @@ -76,4 +77,23 @@ if [ ! -f "$PACKAGE_HASH_FILE" ]; then echo "$PACKAGE_HASH" > "$PACKAGE_HASH_FILE" fi +# Rebuild the tool if it was deleted by Android Studio +if [ ! -f "bin/build_tool_runner.dill" ]; then + "$DART" compile kernel bin/build_tool_runner.dart +fi + +set +e + "$DART" bin/build_tool_runner.dill "$@" + +exit_code=$? + +# 253 means invalid snapshot version. +if [ $exit_code == 253 ]; then + "$DART" pub get --no-precompile + "$DART" compile kernel bin/build_tool_runner.dart + "$DART" bin/build_tool_runner.dill "$@" + exit_code=$? +fi + +exit $exit_code diff --git a/example/pubspec.lock b/example/pubspec.lock index 5fbe5ae2..9756d644 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -1,6 +1,14 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" async: dependency: transitive description: @@ -17,6 +25,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + build_cli_annotations: + dependency: transitive + description: + name: build_cli_annotations + sha256: e563c2e01de8974566a1998410d3f6f03521788160a02503b0b1f1a46c7b3d95 + url: "https://pub.dev" + source: hosted + version: "2.1.1" characters: dependency: transitive description: @@ -78,11 +94,35 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" + flutter_rust_bridge: + dependency: transitive + description: + name: flutter_rust_bridge + sha256: "37ef40bc6f863652e865f0b2563ea07f0d3c58d8efad803cc01933a4b2ee067e" + url: "https://pub.dev" + source: hosted + version: "2.11.1" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "805fa86df56383000f640384b282ce0cb8431f1a7a2396de92fb66186d8c57df" + url: "https://pub.dev" + source: hosted + version: "4.10.0" leak_tracker: dependency: transitive description: @@ -135,10 +175,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" path: dependency: transitive description: @@ -268,17 +308,17 @@ packages: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.7" tor: dependency: "direct main" description: path: ".." relative: true source: path - version: "0.1.0" + version: "0.2.0" vector_math: dependency: transitive description: @@ -295,6 +335,14 @@ packages: url: "https://pub.dev" source: hosted version: "15.0.2" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" xdg_directories: dependency: transitive description: @@ -304,5 +352,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.8.0-0 <4.0.0" + dart: ">=3.9.0 <4.0.0" flutter: ">=3.29.0" diff --git a/ffigen.yaml b/ffigen.yaml deleted file mode 100644 index 62108b01..00000000 --- a/ffigen.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -# -# SPDX-License-Identifier: MIT - -# Run with `flutter pub run ffigen --config ffigen.yaml`. -name: NativeLibrary -description: | - Bindings for `tor.h`. - - Regenerate bindings with `flutter pub run ffigen --config ffigen.yaml`. -output: 'lib/tor_bindings_generated.dart' -headers: - entry-points: - - 'rust/target/tor.h' - include-directives: - - 'rust/target/tor.h' -preamble: | - // ignore_for_file: always_specify_types - // ignore_for_file: camel_case_types - // ignore_for_file: non_constant_identifier_names -comments: - style: any - length: full diff --git a/flake.nix b/flake.nix index 59fd5df4..36ba1cf6 100644 --- a/flake.nix +++ b/flake.nix @@ -56,6 +56,10 @@ cargo-ndk ] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ + # C++ toolchain for Flutter Linux builds + gcc + glibc + # Linux desktop build deps (GTK runner) gtk3 pcre2 @@ -75,6 +79,12 @@ shellHook = '' export LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib" + # Use GCC for compiling C/C++ code (Flutter/CMake) + export CC="${pkgs.gcc}/bin/gcc" + export CXX="${pkgs.gcc}/bin/g++" + # Ensure linker can find C runtime and C++ libraries + export LIBRARY_PATH="${pkgs.glibc}/lib:${pkgs.gcc.cc.lib}/lib:$LIBRARY_PATH" + export LD_LIBRARY_PATH="${pkgs.gcc.cc.lib}/lib:$LD_LIBRARY_PATH" ''; }; } diff --git a/flutter_rust_bridge.yaml b/flutter_rust_bridge.yaml new file mode 100644 index 00000000..27ddd366 --- /dev/null +++ b/flutter_rust_bridge.yaml @@ -0,0 +1,8 @@ +# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +# +# SPDX-License-Identifier: MIT + +rust_input: crate::api +rust_root: rust/ +dart_output: lib/src/rust +dart_entrypoint_class_name: RustLib diff --git a/ios/Classes/dummy_file.c b/ios/Classes/dummy_file.c new file mode 100644 index 00000000..a092da28 --- /dev/null +++ b/ios/Classes/dummy_file.c @@ -0,0 +1,7 @@ +/* + * SPDX-FileCopyrightText: 2024 Foundation Devices Inc + * + * SPDX-License-Identifier: MIT + */ + +// This is an empty file to force CocoaPods to create a framework. diff --git a/ios/Classes/tor_ffi_plugin.c b/ios/Classes/tor_ffi_plugin.c deleted file mode 100644 index bc3f15a2..00000000 --- a/ios/Classes/tor_ffi_plugin.c +++ /dev/null @@ -1,12 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - * - * SPDX-License-Identifier: MIT - */ - -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -// Relative import to be able to reuse the C sources. -// See the comment in ../{projectName}}.podspec for more information. diff --git a/ios/rust_lib_tor.podspec b/ios/rust_lib_tor.podspec new file mode 100644 index 00000000..c74e0aaa --- /dev/null +++ b/ios/rust_lib_tor.podspec @@ -0,0 +1,48 @@ +# +# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +# SPDX-License-Identifier: MIT +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint rust_lib_tor.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'rust_lib_tor' + s.version = '0.0.1' + s.summary = 'Rust library for Tor proxy' + s.description = <<-DESC +Rust library providing Tor proxy functionality via arti. + DESC + s.homepage = 'https://github.com/Foundation-Devices/tor' + s.license = { :file => '../LICENSE' } + s.author = { 'Foundation Devices' => 'hello@foundation.xyz' } + + # This will ensure the source files in Classes/ are included in the native + # builds of apps using this FFI plugin. Podspec does not support relative + # paths, so Classes contains a forwarder C file that relatively imports + # `../src/*` so that the C sources can be shared among all target platforms. + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'Flutter' + s.platform = :ios, '11.0' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } + s.swift_version = '5.0' + + s.script_phase = { + :name => 'Build Rust library', + # First argument is relative path to the `rust` folder, second is name of rust library + :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../rust rust_lib_tor', + :execution_position => :before_compile, + :input_files => ['${BUILT_PRODUCTS_DIR}/cargokit_phony'], + # Let XCode know that the static library referenced in -force_load below is + # created by this build step. + :output_files => ["${BUILT_PRODUCTS_DIR}/librust_lib_tor.a"], + } + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + # Flutter.framework does not contain a i386 slice. + 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', + 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/librust_lib_tor.a', + } +end diff --git a/ios/tor.podspec b/ios/tor.podspec deleted file mode 100644 index df75e302..00000000 --- a/ios/tor.podspec +++ /dev/null @@ -1,37 +0,0 @@ -# -# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. -# Run `pod lib lint tor.podspec` to validate before publishing. -# -Pod::Spec.new do |s| - s.name = 'tor' - s.version = '0.0.1' - s.summary = 'A new Flutter FFI plugin project.' - s.description = <<-DESC -A new Flutter FFI plugin project. - DESC - s.homepage = 'http://example.com' - s.license = { :file => '../LICENSE' } - s.author = { 'Your Company' => 'email@example.com' } - - s.source = { :path => '.' } - s.source_files = 'Classes/**/*' - s.dependency 'Flutter' - s.platform = :ios, '9.0' - - s.script_phase = { - :name => 'Build Rust library', - # First argument is relative path to the `rust` folder, second is name of rust library - :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../rust tor', - :execution_position => :before_compile, - :input_files => ['${BUILT_PRODUCTS_DIR}/cargokit_phony'], - # Let XCode know that the static library referenced in -force_load below is - # created by this build step. - :output_files => ["${BUILT_PRODUCTS_DIR}/libtor.a"], - } - s.pod_target_xcconfig = { - 'DEFINES_MODULE' => 'YES', - # Flutter.framework does not contain a i386 slice. - 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', - 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/libtor.a', - } -end diff --git a/ios/tor.podspec.license b/ios/tor.podspec.license deleted file mode 100644 index 7b44746f..00000000 --- a/ios/tor.podspec.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - -SPDX-License-Identifier: MIT diff --git a/lib/generated_bindings.dart b/lib/generated_bindings.dart deleted file mode 100644 index b5b15a54..00000000 --- a/lib/generated_bindings.dart +++ /dev/null @@ -1,275 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -// AUTO GENERATED FILE, DO NOT EDIT. -// -// Generated by `package:ffigen`. -// ignore_for_file: type=lint -import 'dart:ffi' as ffi; - -class NativeLibrary { - /// Holds the symbol lookup function. - final ffi.Pointer Function(String symbolName) - _lookup; - - /// The symbols are looked up in [dynamicLibrary]. - NativeLibrary(ffi.DynamicLibrary dynamicLibrary) - : _lookup = dynamicLibrary.lookup; - - /// The symbols are looked up with [lookup]. - NativeLibrary.fromLookup( - ffi.Pointer Function(String symbolName) - lookup) - : _lookup = lookup; - - Tor tor_start( - int socks_port, - ffi.Pointer state_dir, - ffi.Pointer cache_dir, - ) { - return _tor_start( - socks_port, - state_dir, - cache_dir, - ); - } - - late final _tor_startPtr = _lookup< - ffi.NativeFunction< - Tor Function(ffi.Uint16, ffi.Pointer, - ffi.Pointer)>>('tor_start'); - late final _tor_start = _tor_startPtr.asFunction< - Tor Function(int, ffi.Pointer, ffi.Pointer)>(); - - bool tor_client_bootstrap( - ffi.Pointer client, - ) { - return _tor_client_bootstrap( - client, - ); - } - - late final _tor_client_bootstrapPtr = - _lookup)>>( - 'tor_client_bootstrap'); - late final _tor_client_bootstrap = _tor_client_bootstrapPtr - .asFunction)>(); - - void tor_client_set_dormant( - ffi.Pointer client, - bool soft_mode, - ) { - return _tor_client_set_dormant( - client, - soft_mode, - ); - } - - late final _tor_client_set_dormantPtr = _lookup< - ffi - .NativeFunction, ffi.Bool)>>( - 'tor_client_set_dormant'); - late final _tor_client_set_dormant = _tor_client_set_dormantPtr - .asFunction, bool)>(); - - void tor_proxy_stop( - ffi.Pointer proxy, - ) { - return _tor_proxy_stop( - proxy, - ); - } - - late final _tor_proxy_stopPtr = - _lookup)>>( - 'tor_proxy_stop'); - late final _tor_proxy_stop = - _tor_proxy_stopPtr.asFunction)>(); - - void tor_hello() { - return _tor_hello(); - } - - late final _tor_helloPtr = - _lookup>('tor_hello'); - late final _tor_hello = _tor_helloPtr.asFunction(); - - ffi.Pointer tor_last_error_message() { - return _tor_last_error_message(); - } - - late final _tor_last_error_messagePtr = - _lookup Function()>>( - 'tor_last_error_message'); - late final _tor_last_error_message = - _tor_last_error_messagePtr.asFunction Function()>(); - - int tor_get_nofile_limit() { - return _tor_get_nofile_limit(); - } - - late final _tor_get_nofile_limitPtr = - _lookup>( - 'tor_get_nofile_limit'); - late final _tor_get_nofile_limit = - _tor_get_nofile_limitPtr.asFunction(); - - int tor_set_nofile_limit( - int limit, - ) { - return _tor_set_nofile_limit( - limit, - ); - } - - late final _tor_set_nofile_limitPtr = - _lookup>( - 'tor_set_nofile_limit'); - late final _tor_set_nofile_limit = - _tor_set_nofile_limitPtr.asFunction(); -} - -final class Tor extends ffi.Struct { - external ffi.Pointer client; - - external ffi.Pointer proxy; -} - -const int true1 = 1; - -const int false1 = 0; - -const int INT8_MIN = -128; - -const int INT16_MIN = -32768; - -const int INT32_MIN = -2147483648; - -const int INT64_MIN = -9223372036854775808; - -const int INT8_MAX = 127; - -const int INT16_MAX = 32767; - -const int INT32_MAX = 2147483647; - -const int INT64_MAX = 9223372036854775807; - -const int UINT8_MAX = 255; - -const int UINT16_MAX = 65535; - -const int UINT32_MAX = 4294967295; - -const int UINT64_MAX = -1; - -const int INT_LEAST8_MIN = -128; - -const int INT_LEAST16_MIN = -32768; - -const int INT_LEAST32_MIN = -2147483648; - -const int INT_LEAST64_MIN = -9223372036854775808; - -const int INT_LEAST8_MAX = 127; - -const int INT_LEAST16_MAX = 32767; - -const int INT_LEAST32_MAX = 2147483647; - -const int INT_LEAST64_MAX = 9223372036854775807; - -const int UINT_LEAST8_MAX = 255; - -const int UINT_LEAST16_MAX = 65535; - -const int UINT_LEAST32_MAX = 4294967295; - -const int UINT_LEAST64_MAX = -1; - -const int INT_FAST8_MIN = -128; - -const int INT_FAST16_MIN = -9223372036854775808; - -const int INT_FAST32_MIN = -9223372036854775808; - -const int INT_FAST64_MIN = -9223372036854775808; - -const int INT_FAST8_MAX = 127; - -const int INT_FAST16_MAX = 9223372036854775807; - -const int INT_FAST32_MAX = 9223372036854775807; - -const int INT_FAST64_MAX = 9223372036854775807; - -const int UINT_FAST8_MAX = 255; - -const int UINT_FAST16_MAX = -1; - -const int UINT_FAST32_MAX = -1; - -const int UINT_FAST64_MAX = -1; - -const int INTPTR_MIN = -9223372036854775808; - -const int INTPTR_MAX = 9223372036854775807; - -const int UINTPTR_MAX = -1; - -const int INTMAX_MIN = -9223372036854775808; - -const int INTMAX_MAX = 9223372036854775807; - -const int UINTMAX_MAX = -1; - -const int PTRDIFF_MIN = -9223372036854775808; - -const int PTRDIFF_MAX = 9223372036854775807; - -const int SIG_ATOMIC_MIN = -2147483648; - -const int SIG_ATOMIC_MAX = 2147483647; - -const int SIZE_MAX = -1; - -const int WCHAR_MIN = -2147483648; - -const int WCHAR_MAX = 2147483647; - -const int WINT_MIN = 0; - -const int WINT_MAX = 4294967295; - -const int NULL = 0; - -const int WNOHANG = 1; - -const int WUNTRACED = 2; - -const int WSTOPPED = 2; - -const int WEXITED = 4; - -const int WCONTINUED = 8; - -const int WNOWAIT = 16777216; - -const int RAND_MAX = 2147483647; - -const int EXIT_FAILURE = 1; - -const int EXIT_SUCCESS = 0; - -const int LITTLE_ENDIAN = 1234; - -const int BIG_ENDIAN = 4321; - -const int PDP_ENDIAN = 3412; - -const int BYTE_ORDER = 1234; - -const int FD_SETSIZE = 1024; - -const int NFDBITS = 64; diff --git a/lib/src/rust/api/tor.dart b/lib/src/rust/api/tor.dart new file mode 100644 index 00000000..b170eb74 --- /dev/null +++ b/lib/src/rust/api/tor.dart @@ -0,0 +1,98 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import + +import '../frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; +import 'package:freezed_annotation/freezed_annotation.dart' hide protected; +part 'tor.freezed.dart'; + +// These functions are ignored because they are not marked as `pub`: `start_proxy_internal` +// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `RUNTIME` +// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `clone`, `clone`, `deref`, `fmt`, `fmt`, `initialize` + +/// Start Tor client and proxy +/// +/// This is a blocking operation that may take several seconds. +/// It bootstraps the Tor network connection and starts a SOCKS proxy. +Future startTor( + {required int socksPort, + required String stateDir, + required String cacheDir}) => + RustLib.instance.api.crateApiTorStartTor( + socksPort: socksPort, stateDir: stateDir, cacheDir: cacheDir); + +/// Re-bootstrap the Tor client +/// +/// Call this after network changes or to refresh the connection. +Future bootstrap({required TorClientWrapper client}) => + RustLib.instance.api.crateApiTorBootstrap(client: client); + +/// Set the client dormant mode +/// +/// * `soft_mode` - If true, uses Soft dormant mode (keeps some circuits warm) +/// If false, uses Normal mode (full operation) +Future setDormant( + {required TorClientWrapper client, required bool softMode}) => + RustLib.instance.api + .crateApiTorSetDormant(client: client, softMode: softMode); + +/// Stop the Tor proxy +/// +/// This safely aborts the proxy task. Previously this could panic +/// and crash the app - with FRB, any panic becomes a catchable exception. +Future stopProxy({required TorProxyHandle proxy}) => + RustLib.instance.api.crateApiTorStopProxy(proxy: proxy); + +/// Test function to verify library linking +Future hello() => RustLib.instance.api.crateApiTorHello(); + +Future getNofileLimit() => + RustLib.instance.api.crateApiTorGetNofileLimit(); + +Future setNofileLimit({required BigInt limit}) => + RustLib.instance.api.crateApiTorSetNofileLimit(limit: limit); + +// Rust type: RustOpaqueMoi> +abstract class TorClientWrapper implements RustOpaqueInterface {} + +// Rust type: RustOpaqueMoi> +abstract class TorInstance implements RustOpaqueInterface { + TorClientWrapper get client; + + TorProxyHandle get proxy; + + int get socksPort; + + set client(TorClientWrapper client); + + set proxy(TorProxyHandle proxy); + + set socksPort(int socksPort); +} + +// Rust type: RustOpaqueMoi> +abstract class TorProxyHandle implements RustOpaqueInterface {} + +@freezed +sealed class TorError with _$TorError implements FrbException { + const TorError._(); + + const factory TorError.bootstrapError( + String field0, + ) = TorError_BootstrapError; + const factory TorError.proxyStartError( + String field0, + ) = TorError_ProxyStartError; + const factory TorError.proxyStopError( + String field0, + ) = TorError_ProxyStopError; + const factory TorError.clientNotInitialized() = TorError_ClientNotInitialized; + const factory TorError.runtimeError( + String field0, + ) = TorError_RuntimeError; + const factory TorError.configError( + String field0, + ) = TorError_ConfigError; +} diff --git a/lib/src/rust/api/tor.freezed.dart b/lib/src/rust/api/tor.freezed.dart new file mode 100644 index 00000000..e36f2488 --- /dev/null +++ b/lib/src/rust/api/tor.freezed.dart @@ -0,0 +1,1093 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'tor.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +T _$identity(T value) => value; + +final _privateConstructorUsedError = UnsupportedError( + 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models'); + +/// @nodoc +mixin _$TorError { + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) => + throw _privateConstructorUsedError; + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) => + throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class $TorErrorCopyWith<$Res> { + factory $TorErrorCopyWith(TorError value, $Res Function(TorError) then) = + _$TorErrorCopyWithImpl<$Res, TorError>; +} + +/// @nodoc +class _$TorErrorCopyWithImpl<$Res, $Val extends TorError> + implements $TorErrorCopyWith<$Res> { + _$TorErrorCopyWithImpl(this._value, this._then); + + // ignore: unused_field + final $Val _value; + // ignore: unused_field + final $Res Function($Val) _then; + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc +abstract class _$$TorError_BootstrapErrorImplCopyWith<$Res> { + factory _$$TorError_BootstrapErrorImplCopyWith( + _$TorError_BootstrapErrorImpl value, + $Res Function(_$TorError_BootstrapErrorImpl) then) = + __$$TorError_BootstrapErrorImplCopyWithImpl<$Res>; + @useResult + $Res call({String field0}); +} + +/// @nodoc +class __$$TorError_BootstrapErrorImplCopyWithImpl<$Res> + extends _$TorErrorCopyWithImpl<$Res, _$TorError_BootstrapErrorImpl> + implements _$$TorError_BootstrapErrorImplCopyWith<$Res> { + __$$TorError_BootstrapErrorImplCopyWithImpl( + _$TorError_BootstrapErrorImpl _value, + $Res Function(_$TorError_BootstrapErrorImpl) _then) + : super(_value, _then); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? field0 = null, + }) { + return _then(_$TorError_BootstrapErrorImpl( + null == field0 + ? _value.field0 + : field0 // ignore: cast_nullable_to_non_nullable + as String, + )); + } +} + +/// @nodoc + +class _$TorError_BootstrapErrorImpl extends TorError_BootstrapError { + const _$TorError_BootstrapErrorImpl(this.field0) : super._(); + + @override + final String field0; + + @override + String toString() { + return 'TorError.bootstrapError(field0: $field0)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TorError_BootstrapErrorImpl && + (identical(other.field0, field0) || other.field0 == field0)); + } + + @override + int get hashCode => Object.hash(runtimeType, field0); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$TorError_BootstrapErrorImplCopyWith<_$TorError_BootstrapErrorImpl> + get copyWith => __$$TorError_BootstrapErrorImplCopyWithImpl< + _$TorError_BootstrapErrorImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) { + return bootstrapError(field0); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) { + return bootstrapError?.call(field0); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) { + if (bootstrapError != null) { + return bootstrapError(field0); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) { + return bootstrapError(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) { + return bootstrapError?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) { + if (bootstrapError != null) { + return bootstrapError(this); + } + return orElse(); + } +} + +abstract class TorError_BootstrapError extends TorError { + const factory TorError_BootstrapError(final String field0) = + _$TorError_BootstrapErrorImpl; + const TorError_BootstrapError._() : super._(); + + String get field0; + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$TorError_BootstrapErrorImplCopyWith<_$TorError_BootstrapErrorImpl> + get copyWith => throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$TorError_ProxyStartErrorImplCopyWith<$Res> { + factory _$$TorError_ProxyStartErrorImplCopyWith( + _$TorError_ProxyStartErrorImpl value, + $Res Function(_$TorError_ProxyStartErrorImpl) then) = + __$$TorError_ProxyStartErrorImplCopyWithImpl<$Res>; + @useResult + $Res call({String field0}); +} + +/// @nodoc +class __$$TorError_ProxyStartErrorImplCopyWithImpl<$Res> + extends _$TorErrorCopyWithImpl<$Res, _$TorError_ProxyStartErrorImpl> + implements _$$TorError_ProxyStartErrorImplCopyWith<$Res> { + __$$TorError_ProxyStartErrorImplCopyWithImpl( + _$TorError_ProxyStartErrorImpl _value, + $Res Function(_$TorError_ProxyStartErrorImpl) _then) + : super(_value, _then); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? field0 = null, + }) { + return _then(_$TorError_ProxyStartErrorImpl( + null == field0 + ? _value.field0 + : field0 // ignore: cast_nullable_to_non_nullable + as String, + )); + } +} + +/// @nodoc + +class _$TorError_ProxyStartErrorImpl extends TorError_ProxyStartError { + const _$TorError_ProxyStartErrorImpl(this.field0) : super._(); + + @override + final String field0; + + @override + String toString() { + return 'TorError.proxyStartError(field0: $field0)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TorError_ProxyStartErrorImpl && + (identical(other.field0, field0) || other.field0 == field0)); + } + + @override + int get hashCode => Object.hash(runtimeType, field0); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$TorError_ProxyStartErrorImplCopyWith<_$TorError_ProxyStartErrorImpl> + get copyWith => __$$TorError_ProxyStartErrorImplCopyWithImpl< + _$TorError_ProxyStartErrorImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) { + return proxyStartError(field0); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) { + return proxyStartError?.call(field0); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) { + if (proxyStartError != null) { + return proxyStartError(field0); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) { + return proxyStartError(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) { + return proxyStartError?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) { + if (proxyStartError != null) { + return proxyStartError(this); + } + return orElse(); + } +} + +abstract class TorError_ProxyStartError extends TorError { + const factory TorError_ProxyStartError(final String field0) = + _$TorError_ProxyStartErrorImpl; + const TorError_ProxyStartError._() : super._(); + + String get field0; + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$TorError_ProxyStartErrorImplCopyWith<_$TorError_ProxyStartErrorImpl> + get copyWith => throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$TorError_ProxyStopErrorImplCopyWith<$Res> { + factory _$$TorError_ProxyStopErrorImplCopyWith( + _$TorError_ProxyStopErrorImpl value, + $Res Function(_$TorError_ProxyStopErrorImpl) then) = + __$$TorError_ProxyStopErrorImplCopyWithImpl<$Res>; + @useResult + $Res call({String field0}); +} + +/// @nodoc +class __$$TorError_ProxyStopErrorImplCopyWithImpl<$Res> + extends _$TorErrorCopyWithImpl<$Res, _$TorError_ProxyStopErrorImpl> + implements _$$TorError_ProxyStopErrorImplCopyWith<$Res> { + __$$TorError_ProxyStopErrorImplCopyWithImpl( + _$TorError_ProxyStopErrorImpl _value, + $Res Function(_$TorError_ProxyStopErrorImpl) _then) + : super(_value, _then); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? field0 = null, + }) { + return _then(_$TorError_ProxyStopErrorImpl( + null == field0 + ? _value.field0 + : field0 // ignore: cast_nullable_to_non_nullable + as String, + )); + } +} + +/// @nodoc + +class _$TorError_ProxyStopErrorImpl extends TorError_ProxyStopError { + const _$TorError_ProxyStopErrorImpl(this.field0) : super._(); + + @override + final String field0; + + @override + String toString() { + return 'TorError.proxyStopError(field0: $field0)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TorError_ProxyStopErrorImpl && + (identical(other.field0, field0) || other.field0 == field0)); + } + + @override + int get hashCode => Object.hash(runtimeType, field0); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$TorError_ProxyStopErrorImplCopyWith<_$TorError_ProxyStopErrorImpl> + get copyWith => __$$TorError_ProxyStopErrorImplCopyWithImpl< + _$TorError_ProxyStopErrorImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) { + return proxyStopError(field0); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) { + return proxyStopError?.call(field0); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) { + if (proxyStopError != null) { + return proxyStopError(field0); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) { + return proxyStopError(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) { + return proxyStopError?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) { + if (proxyStopError != null) { + return proxyStopError(this); + } + return orElse(); + } +} + +abstract class TorError_ProxyStopError extends TorError { + const factory TorError_ProxyStopError(final String field0) = + _$TorError_ProxyStopErrorImpl; + const TorError_ProxyStopError._() : super._(); + + String get field0; + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$TorError_ProxyStopErrorImplCopyWith<_$TorError_ProxyStopErrorImpl> + get copyWith => throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$TorError_ClientNotInitializedImplCopyWith<$Res> { + factory _$$TorError_ClientNotInitializedImplCopyWith( + _$TorError_ClientNotInitializedImpl value, + $Res Function(_$TorError_ClientNotInitializedImpl) then) = + __$$TorError_ClientNotInitializedImplCopyWithImpl<$Res>; +} + +/// @nodoc +class __$$TorError_ClientNotInitializedImplCopyWithImpl<$Res> + extends _$TorErrorCopyWithImpl<$Res, _$TorError_ClientNotInitializedImpl> + implements _$$TorError_ClientNotInitializedImplCopyWith<$Res> { + __$$TorError_ClientNotInitializedImplCopyWithImpl( + _$TorError_ClientNotInitializedImpl _value, + $Res Function(_$TorError_ClientNotInitializedImpl) _then) + : super(_value, _then); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. +} + +/// @nodoc + +class _$TorError_ClientNotInitializedImpl + extends TorError_ClientNotInitialized { + const _$TorError_ClientNotInitializedImpl() : super._(); + + @override + String toString() { + return 'TorError.clientNotInitialized()'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TorError_ClientNotInitializedImpl); + } + + @override + int get hashCode => runtimeType.hashCode; + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) { + return clientNotInitialized(); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) { + return clientNotInitialized?.call(); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) { + if (clientNotInitialized != null) { + return clientNotInitialized(); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) { + return clientNotInitialized(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) { + return clientNotInitialized?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) { + if (clientNotInitialized != null) { + return clientNotInitialized(this); + } + return orElse(); + } +} + +abstract class TorError_ClientNotInitialized extends TorError { + const factory TorError_ClientNotInitialized() = + _$TorError_ClientNotInitializedImpl; + const TorError_ClientNotInitialized._() : super._(); +} + +/// @nodoc +abstract class _$$TorError_RuntimeErrorImplCopyWith<$Res> { + factory _$$TorError_RuntimeErrorImplCopyWith( + _$TorError_RuntimeErrorImpl value, + $Res Function(_$TorError_RuntimeErrorImpl) then) = + __$$TorError_RuntimeErrorImplCopyWithImpl<$Res>; + @useResult + $Res call({String field0}); +} + +/// @nodoc +class __$$TorError_RuntimeErrorImplCopyWithImpl<$Res> + extends _$TorErrorCopyWithImpl<$Res, _$TorError_RuntimeErrorImpl> + implements _$$TorError_RuntimeErrorImplCopyWith<$Res> { + __$$TorError_RuntimeErrorImplCopyWithImpl(_$TorError_RuntimeErrorImpl _value, + $Res Function(_$TorError_RuntimeErrorImpl) _then) + : super(_value, _then); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? field0 = null, + }) { + return _then(_$TorError_RuntimeErrorImpl( + null == field0 + ? _value.field0 + : field0 // ignore: cast_nullable_to_non_nullable + as String, + )); + } +} + +/// @nodoc + +class _$TorError_RuntimeErrorImpl extends TorError_RuntimeError { + const _$TorError_RuntimeErrorImpl(this.field0) : super._(); + + @override + final String field0; + + @override + String toString() { + return 'TorError.runtimeError(field0: $field0)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TorError_RuntimeErrorImpl && + (identical(other.field0, field0) || other.field0 == field0)); + } + + @override + int get hashCode => Object.hash(runtimeType, field0); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$TorError_RuntimeErrorImplCopyWith<_$TorError_RuntimeErrorImpl> + get copyWith => __$$TorError_RuntimeErrorImplCopyWithImpl< + _$TorError_RuntimeErrorImpl>(this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) { + return runtimeError(field0); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) { + return runtimeError?.call(field0); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) { + if (runtimeError != null) { + return runtimeError(field0); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) { + return runtimeError(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) { + return runtimeError?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) { + if (runtimeError != null) { + return runtimeError(this); + } + return orElse(); + } +} + +abstract class TorError_RuntimeError extends TorError { + const factory TorError_RuntimeError(final String field0) = + _$TorError_RuntimeErrorImpl; + const TorError_RuntimeError._() : super._(); + + String get field0; + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$TorError_RuntimeErrorImplCopyWith<_$TorError_RuntimeErrorImpl> + get copyWith => throw _privateConstructorUsedError; +} + +/// @nodoc +abstract class _$$TorError_ConfigErrorImplCopyWith<$Res> { + factory _$$TorError_ConfigErrorImplCopyWith(_$TorError_ConfigErrorImpl value, + $Res Function(_$TorError_ConfigErrorImpl) then) = + __$$TorError_ConfigErrorImplCopyWithImpl<$Res>; + @useResult + $Res call({String field0}); +} + +/// @nodoc +class __$$TorError_ConfigErrorImplCopyWithImpl<$Res> + extends _$TorErrorCopyWithImpl<$Res, _$TorError_ConfigErrorImpl> + implements _$$TorError_ConfigErrorImplCopyWith<$Res> { + __$$TorError_ConfigErrorImplCopyWithImpl(_$TorError_ConfigErrorImpl _value, + $Res Function(_$TorError_ConfigErrorImpl) _then) + : super(_value, _then); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @pragma('vm:prefer-inline') + @override + $Res call({ + Object? field0 = null, + }) { + return _then(_$TorError_ConfigErrorImpl( + null == field0 + ? _value.field0 + : field0 // ignore: cast_nullable_to_non_nullable + as String, + )); + } +} + +/// @nodoc + +class _$TorError_ConfigErrorImpl extends TorError_ConfigError { + const _$TorError_ConfigErrorImpl(this.field0) : super._(); + + @override + final String field0; + + @override + String toString() { + return 'TorError.configError(field0: $field0)'; + } + + @override + bool operator ==(Object other) { + return identical(this, other) || + (other.runtimeType == runtimeType && + other is _$TorError_ConfigErrorImpl && + (identical(other.field0, field0) || other.field0 == field0)); + } + + @override + int get hashCode => Object.hash(runtimeType, field0); + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + @override + @pragma('vm:prefer-inline') + _$$TorError_ConfigErrorImplCopyWith<_$TorError_ConfigErrorImpl> + get copyWith => + __$$TorError_ConfigErrorImplCopyWithImpl<_$TorError_ConfigErrorImpl>( + this, _$identity); + + @override + @optionalTypeArgs + TResult when({ + required TResult Function(String field0) bootstrapError, + required TResult Function(String field0) proxyStartError, + required TResult Function(String field0) proxyStopError, + required TResult Function() clientNotInitialized, + required TResult Function(String field0) runtimeError, + required TResult Function(String field0) configError, + }) { + return configError(field0); + } + + @override + @optionalTypeArgs + TResult? whenOrNull({ + TResult? Function(String field0)? bootstrapError, + TResult? Function(String field0)? proxyStartError, + TResult? Function(String field0)? proxyStopError, + TResult? Function()? clientNotInitialized, + TResult? Function(String field0)? runtimeError, + TResult? Function(String field0)? configError, + }) { + return configError?.call(field0); + } + + @override + @optionalTypeArgs + TResult maybeWhen({ + TResult Function(String field0)? bootstrapError, + TResult Function(String field0)? proxyStartError, + TResult Function(String field0)? proxyStopError, + TResult Function()? clientNotInitialized, + TResult Function(String field0)? runtimeError, + TResult Function(String field0)? configError, + required TResult orElse(), + }) { + if (configError != null) { + return configError(field0); + } + return orElse(); + } + + @override + @optionalTypeArgs + TResult map({ + required TResult Function(TorError_BootstrapError value) bootstrapError, + required TResult Function(TorError_ProxyStartError value) proxyStartError, + required TResult Function(TorError_ProxyStopError value) proxyStopError, + required TResult Function(TorError_ClientNotInitialized value) + clientNotInitialized, + required TResult Function(TorError_RuntimeError value) runtimeError, + required TResult Function(TorError_ConfigError value) configError, + }) { + return configError(this); + } + + @override + @optionalTypeArgs + TResult? mapOrNull({ + TResult? Function(TorError_BootstrapError value)? bootstrapError, + TResult? Function(TorError_ProxyStartError value)? proxyStartError, + TResult? Function(TorError_ProxyStopError value)? proxyStopError, + TResult? Function(TorError_ClientNotInitialized value)? + clientNotInitialized, + TResult? Function(TorError_RuntimeError value)? runtimeError, + TResult? Function(TorError_ConfigError value)? configError, + }) { + return configError?.call(this); + } + + @override + @optionalTypeArgs + TResult maybeMap({ + TResult Function(TorError_BootstrapError value)? bootstrapError, + TResult Function(TorError_ProxyStartError value)? proxyStartError, + TResult Function(TorError_ProxyStopError value)? proxyStopError, + TResult Function(TorError_ClientNotInitialized value)? clientNotInitialized, + TResult Function(TorError_RuntimeError value)? runtimeError, + TResult Function(TorError_ConfigError value)? configError, + required TResult orElse(), + }) { + if (configError != null) { + return configError(this); + } + return orElse(); + } +} + +abstract class TorError_ConfigError extends TorError { + const factory TorError_ConfigError(final String field0) = + _$TorError_ConfigErrorImpl; + const TorError_ConfigError._() : super._(); + + String get field0; + + /// Create a copy of TorError + /// with the given fields replaced by the non-null parameter values. + @JsonKey(includeFromJson: false, includeToJson: false) + _$$TorError_ConfigErrorImplCopyWith<_$TorError_ConfigErrorImpl> + get copyWith => throw _privateConstructorUsedError; +} diff --git a/lib/src/rust/frb_generated.dart b/lib/src/rust/frb_generated.dart new file mode 100644 index 00000000..1981191c --- /dev/null +++ b/lib/src/rust/frb_generated.dart @@ -0,0 +1,1111 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field + +import 'api/tor.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'frb_generated.dart'; +import 'frb_generated.io.dart' + if (dart.library.js_interop) 'frb_generated.web.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; + +/// Main entrypoint of the Rust API +class RustLib extends BaseEntrypoint { + @internal + static final instance = RustLib._(); + + RustLib._(); + + /// Initialize flutter_rust_bridge + static Future init({ + RustLibApi? api, + BaseHandler? handler, + ExternalLibrary? externalLibrary, + bool forceSameCodegenVersion = true, + }) async { + await instance.initImpl( + api: api, + handler: handler, + externalLibrary: externalLibrary, + forceSameCodegenVersion: forceSameCodegenVersion, + ); + } + + /// Initialize flutter_rust_bridge in mock mode. + /// No libraries for FFI are loaded. + static void initMock({ + required RustLibApi api, + }) { + instance.initMockImpl( + api: api, + ); + } + + /// Dispose flutter_rust_bridge + /// + /// The call to this function is optional, since flutter_rust_bridge (and everything else) + /// is automatically disposed when the app stops. + static void dispose() => instance.disposeImpl(); + + @override + ApiImplConstructor get apiImplConstructor => + RustLibApiImpl.new; + + @override + WireConstructor get wireConstructor => + RustLibWire.fromExternalLibrary; + + @override + Future executeRustInitializers() async { + await api.crateApiTorInitApp(); + } + + @override + ExternalLibraryLoaderConfig get defaultExternalLibraryLoaderConfig => + kDefaultExternalLibraryLoaderConfig; + + @override + String get codegenVersion => '2.11.1'; + + @override + int get rustContentHash => 333622112; + + static const kDefaultExternalLibraryLoaderConfig = + ExternalLibraryLoaderConfig( + stem: 'rust_lib_tor', + ioDirectory: 'rust/target/release/', + webPrefix: 'pkg/', + ); +} + +abstract class RustLibApi extends BaseApi { + TorClientWrapper crateApiTorTorInstanceAutoAccessorGetClient( + {required TorInstance that}); + + TorProxyHandle crateApiTorTorInstanceAutoAccessorGetProxy( + {required TorInstance that}); + + int crateApiTorTorInstanceAutoAccessorGetSocksPort( + {required TorInstance that}); + + void crateApiTorTorInstanceAutoAccessorSetClient( + {required TorInstance that, required TorClientWrapper client}); + + void crateApiTorTorInstanceAutoAccessorSetProxy( + {required TorInstance that, required TorProxyHandle proxy}); + + void crateApiTorTorInstanceAutoAccessorSetSocksPort( + {required TorInstance that, required int socksPort}); + + Future crateApiTorBootstrap({required TorClientWrapper client}); + + Future crateApiTorGetNofileLimit(); + + Future crateApiTorHello(); + + Future crateApiTorInitApp(); + + Future crateApiTorSetDormant( + {required TorClientWrapper client, required bool softMode}); + + Future crateApiTorSetNofileLimit({required BigInt limit}); + + Future crateApiTorStartTor( + {required int socksPort, + required String stateDir, + required String cacheDir}); + + Future crateApiTorStopProxy({required TorProxyHandle proxy}); + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TorClientWrapper; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TorClientWrapper; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorClientWrapperPtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TorInstance; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TorInstance; + + CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_TorInstancePtr; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TorProxyHandle; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TorProxyHandle; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorProxyHandlePtr; +} + +class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { + RustLibApiImpl({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + @override + TorClientWrapper crateApiTorTorInstanceAutoAccessorGetClient( + {required TorInstance that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 1)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper, + decodeErrorData: null, + ), + constMeta: kCrateApiTorTorInstanceAutoAccessorGetClientConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorTorInstanceAutoAccessorGetClientConstMeta => + const TaskConstMeta( + debugName: "TorInstance_auto_accessor_get_client", + argNames: ["that"], + ); + + @override + TorProxyHandle crateApiTorTorInstanceAutoAccessorGetProxy( + {required TorInstance that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 2)!; + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle, + decodeErrorData: null, + ), + constMeta: kCrateApiTorTorInstanceAutoAccessorGetProxyConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorTorInstanceAutoAccessorGetProxyConstMeta => + const TaskConstMeta( + debugName: "TorInstance_auto_accessor_get_proxy", + argNames: ["that"], + ); + + @override + int crateApiTorTorInstanceAutoAccessorGetSocksPort( + {required TorInstance that}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + that, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 3)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_16, + decodeErrorData: null, + ), + constMeta: kCrateApiTorTorInstanceAutoAccessorGetSocksPortConstMeta, + argValues: [that], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorTorInstanceAutoAccessorGetSocksPortConstMeta => + const TaskConstMeta( + debugName: "TorInstance_auto_accessor_get_socks_port", + argNames: ["that"], + ); + + @override + void crateApiTorTorInstanceAutoAccessorSetClient( + {required TorInstance that, required TorClientWrapper client}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + client, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 4)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiTorTorInstanceAutoAccessorSetClientConstMeta, + argValues: [that, client], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorTorInstanceAutoAccessorSetClientConstMeta => + const TaskConstMeta( + debugName: "TorInstance_auto_accessor_set_client", + argNames: ["that", "client"], + ); + + @override + void crateApiTorTorInstanceAutoAccessorSetProxy( + {required TorInstance that, required TorProxyHandle proxy}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + that, serializer); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + proxy, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 5)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiTorTorInstanceAutoAccessorSetProxyConstMeta, + argValues: [that, proxy], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorTorInstanceAutoAccessorSetProxyConstMeta => + const TaskConstMeta( + debugName: "TorInstance_auto_accessor_set_proxy", + argNames: ["that", "proxy"], + ); + + @override + void crateApiTorTorInstanceAutoAccessorSetSocksPort( + {required TorInstance that, required int socksPort}) { + return handler.executeSync(SyncTask( + callFfi: () { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + that, serializer); + sse_encode_u_16(socksPort, serializer); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 6)!; + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiTorTorInstanceAutoAccessorSetSocksPortConstMeta, + argValues: [that, socksPort], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorTorInstanceAutoAccessorSetSocksPortConstMeta => + const TaskConstMeta( + debugName: "TorInstance_auto_accessor_set_socks_port", + argNames: ["that", "socksPort"], + ); + + @override + Future crateApiTorBootstrap({required TorClientWrapper client}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + client, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 7, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: sse_decode_tor_error, + ), + constMeta: kCrateApiTorBootstrapConstMeta, + argValues: [client], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorBootstrapConstMeta => const TaskConstMeta( + debugName: "bootstrap", + argNames: ["client"], + ); + + @override + Future crateApiTorGetNofileLimit() { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 8, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_64, + decodeErrorData: sse_decode_tor_error, + ), + constMeta: kCrateApiTorGetNofileLimitConstMeta, + argValues: [], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorGetNofileLimitConstMeta => const TaskConstMeta( + debugName: "get_nofile_limit", + argNames: [], + ); + + @override + Future crateApiTorHello() { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 9, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiTorHelloConstMeta, + argValues: [], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorHelloConstMeta => const TaskConstMeta( + debugName: "hello", + argNames: [], + ); + + @override + Future crateApiTorInitApp() { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 10, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiTorInitAppConstMeta, + argValues: [], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorInitAppConstMeta => const TaskConstMeta( + debugName: "init_app", + argNames: [], + ); + + @override + Future crateApiTorSetDormant( + {required TorClientWrapper client, required bool softMode}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + client, serializer); + sse_encode_bool(softMode, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 11, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: null, + ), + constMeta: kCrateApiTorSetDormantConstMeta, + argValues: [client, softMode], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorSetDormantConstMeta => const TaskConstMeta( + debugName: "set_dormant", + argNames: ["client", "softMode"], + ); + + @override + Future crateApiTorSetNofileLimit({required BigInt limit}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_u_64(limit, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 12, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_u_64, + decodeErrorData: sse_decode_tor_error, + ), + constMeta: kCrateApiTorSetNofileLimitConstMeta, + argValues: [limit], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorSetNofileLimitConstMeta => const TaskConstMeta( + debugName: "set_nofile_limit", + argNames: ["limit"], + ); + + @override + Future crateApiTorStartTor( + {required int socksPort, + required String stateDir, + required String cacheDir}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_u_16(socksPort, serializer); + sse_encode_String(stateDir, serializer); + sse_encode_String(cacheDir, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 13, port: port_); + }, + codec: SseCodec( + decodeSuccessData: + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance, + decodeErrorData: sse_decode_tor_error, + ), + constMeta: kCrateApiTorStartTorConstMeta, + argValues: [socksPort, stateDir, cacheDir], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorStartTorConstMeta => const TaskConstMeta( + debugName: "start_tor", + argNames: ["socksPort", "stateDir", "cacheDir"], + ); + + @override + Future crateApiTorStopProxy({required TorProxyHandle proxy}) { + return handler.executeNormal(NormalTask( + callFfi: (port_) { + final serializer = SseSerializer(generalizedFrbRustBinding); + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + proxy, serializer); + pdeCallFfi(generalizedFrbRustBinding, serializer, + funcId: 14, port: port_); + }, + codec: SseCodec( + decodeSuccessData: sse_decode_unit, + decodeErrorData: sse_decode_tor_error, + ), + constMeta: kCrateApiTorStopProxyConstMeta, + argValues: [proxy], + apiImpl: this, + )); + } + + TaskConstMeta get kCrateApiTorStopProxyConstMeta => const TaskConstMeta( + debugName: "stop_proxy", + argNames: ["proxy"], + ); + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TorClientWrapper => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TorClientWrapper => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TorInstance => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TorInstance => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance; + + RustArcIncrementStrongCountFnType + get rust_arc_increment_strong_count_TorProxyHandle => wire + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle; + + RustArcDecrementStrongCountFnType + get rust_arc_decrement_strong_count_TorProxyHandle => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle; + + @protected + TorClientWrapper + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorClientWrapperImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorInstance + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorInstanceImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorProxyHandle + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorProxyHandleImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorInstance + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorInstanceImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorClientWrapper + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorClientWrapperImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorInstance + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorInstanceImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorClientWrapper + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorClientWrapperImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorInstance + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorInstanceImpl.frbInternalDcoDecode(raw as List); + } + + @protected + TorProxyHandle + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return TorProxyHandleImpl.frbInternalDcoDecode(raw as List); + } + + @protected + String dco_decode_String(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as String; + } + + @protected + bool dco_decode_bool(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as bool; + } + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as Uint8List; + } + + @protected + TorError dco_decode_tor_error(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + switch (raw[0]) { + case 0: + return TorError_BootstrapError( + dco_decode_String(raw[1]), + ); + case 1: + return TorError_ProxyStartError( + dco_decode_String(raw[1]), + ); + case 2: + return TorError_ProxyStopError( + dco_decode_String(raw[1]), + ); + case 3: + return TorError_ClientNotInitialized(); + case 4: + return TorError_RuntimeError( + dco_decode_String(raw[1]), + ); + case 5: + return TorError_ConfigError( + dco_decode_String(raw[1]), + ); + default: + throw Exception("unreachable"); + } + } + + @protected + int dco_decode_u_16(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as int; + } + + @protected + BigInt dco_decode_u_64(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dcoDecodeU64(raw); + } + + @protected + int dco_decode_u_8(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return raw as int; + } + + @protected + void dco_decode_unit(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return; + } + + @protected + BigInt dco_decode_usize(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + return dcoDecodeU64(raw); + } + + @protected + TorClientWrapper + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorClientWrapperImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorInstance + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorInstanceImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorProxyHandle + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorProxyHandleImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorInstance + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorInstanceImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorClientWrapper + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorClientWrapperImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorInstance + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorInstanceImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorClientWrapper + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorClientWrapperImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorInstance + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorInstanceImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + TorProxyHandle + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return TorProxyHandleImpl.frbInternalSseDecode( + sse_decode_usize(deserializer), sse_decode_i_32(deserializer)); + } + + @protected + String sse_decode_String(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var inner = sse_decode_list_prim_u_8_strict(deserializer); + return utf8.decoder.convert(inner); + } + + @protected + bool sse_decode_bool(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint8() != 0; + } + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + var len_ = sse_decode_i_32(deserializer); + return deserializer.buffer.getUint8List(len_); + } + + @protected + TorError sse_decode_tor_error(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + + var tag_ = sse_decode_i_32(deserializer); + switch (tag_) { + case 0: + var var_field0 = sse_decode_String(deserializer); + return TorError_BootstrapError(var_field0); + case 1: + var var_field0 = sse_decode_String(deserializer); + return TorError_ProxyStartError(var_field0); + case 2: + var var_field0 = sse_decode_String(deserializer); + return TorError_ProxyStopError(var_field0); + case 3: + return TorError_ClientNotInitialized(); + case 4: + var var_field0 = sse_decode_String(deserializer); + return TorError_RuntimeError(var_field0); + case 5: + var var_field0 = sse_decode_String(deserializer); + return TorError_ConfigError(var_field0); + default: + throw UnimplementedError(''); + } + } + + @protected + int sse_decode_u_16(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint16(); + } + + @protected + BigInt sse_decode_u_64(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getBigUint64(); + } + + @protected + int sse_decode_u_8(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getUint8(); + } + + @protected + void sse_decode_unit(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + } + + @protected + BigInt sse_decode_usize(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getBigUint64(); + } + + @protected + int sse_decode_i_32(SseDeserializer deserializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + return deserializer.buffer.getInt32(); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorClientWrapperImpl).frbInternalSseEncode(move: true), + serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorInstanceImpl).frbInternalSseEncode(move: true), serializer); + } + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + TorProxyHandle self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorProxyHandleImpl).frbInternalSseEncode(move: true), + serializer); + } + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorInstanceImpl).frbInternalSseEncode(move: false), + serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorClientWrapperImpl).frbInternalSseEncode(move: false), + serializer); + } + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorInstanceImpl).frbInternalSseEncode(move: false), + serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorClientWrapperImpl).frbInternalSseEncode(move: null), + serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorInstanceImpl).frbInternalSseEncode(move: null), serializer); + } + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + TorProxyHandle self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_usize( + (self as TorProxyHandleImpl).frbInternalSseEncode(move: null), + serializer); + } + + @protected + void sse_encode_String(String self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_list_prim_u_8_strict(utf8.encoder.convert(self), serializer); + } + + @protected + void sse_encode_bool(bool self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint8(self ? 1 : 0); + } + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_i_32(self.length, serializer); + serializer.buffer.putUint8List(self); + } + + @protected + void sse_encode_tor_error(TorError self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + switch (self) { + case TorError_BootstrapError(field0: final field0): + sse_encode_i_32(0, serializer); + sse_encode_String(field0, serializer); + case TorError_ProxyStartError(field0: final field0): + sse_encode_i_32(1, serializer); + sse_encode_String(field0, serializer); + case TorError_ProxyStopError(field0: final field0): + sse_encode_i_32(2, serializer); + sse_encode_String(field0, serializer); + case TorError_ClientNotInitialized(): + sse_encode_i_32(3, serializer); + case TorError_RuntimeError(field0: final field0): + sse_encode_i_32(4, serializer); + sse_encode_String(field0, serializer); + case TorError_ConfigError(field0: final field0): + sse_encode_i_32(5, serializer); + sse_encode_String(field0, serializer); + } + } + + @protected + void sse_encode_u_16(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint16(self); + } + + @protected + void sse_encode_u_64(BigInt self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putBigUint64(self); + } + + @protected + void sse_encode_u_8(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putUint8(self); + } + + @protected + void sse_encode_unit(void self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + } + + @protected + void sse_encode_usize(BigInt self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putBigUint64(self); + } + + @protected + void sse_encode_i_32(int self, SseSerializer serializer) { + // Codec=Sse (Serialization based), see doc to use other codecs + serializer.buffer.putInt32(self); + } +} + +@sealed +class TorClientWrapperImpl extends RustOpaque implements TorClientWrapper { + // Not to be used by end users + TorClientWrapperImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + TorClientWrapperImpl.frbInternalSseDecode( + BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_TorClientWrapper, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_TorClientWrapper, + rustArcDecrementStrongCountPtr: RustLib + .instance.api.rust_arc_decrement_strong_count_TorClientWrapperPtr, + ); +} + +@sealed +class TorInstanceImpl extends RustOpaque implements TorInstance { + // Not to be used by end users + TorInstanceImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + TorInstanceImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_TorInstance, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_TorInstance, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_TorInstancePtr, + ); + + TorClientWrapper get client => + RustLib.instance.api.crateApiTorTorInstanceAutoAccessorGetClient( + that: this, + ); + + TorProxyHandle get proxy => + RustLib.instance.api.crateApiTorTorInstanceAutoAccessorGetProxy( + that: this, + ); + + int get socksPort => + RustLib.instance.api.crateApiTorTorInstanceAutoAccessorGetSocksPort( + that: this, + ); + + set client(TorClientWrapper client) => RustLib.instance.api + .crateApiTorTorInstanceAutoAccessorSetClient(that: this, client: client); + + set proxy(TorProxyHandle proxy) => RustLib.instance.api + .crateApiTorTorInstanceAutoAccessorSetProxy(that: this, proxy: proxy); + + set socksPort(int socksPort) => + RustLib.instance.api.crateApiTorTorInstanceAutoAccessorSetSocksPort( + that: this, socksPort: socksPort); +} + +@sealed +class TorProxyHandleImpl extends RustOpaque implements TorProxyHandle { + // Not to be used by end users + TorProxyHandleImpl.frbInternalDcoDecode(List wire) + : super.frbInternalDcoDecode(wire, _kStaticData); + + // Not to be used by end users + TorProxyHandleImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) + : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); + + static final _kStaticData = RustArcStaticData( + rustArcIncrementStrongCount: + RustLib.instance.api.rust_arc_increment_strong_count_TorProxyHandle, + rustArcDecrementStrongCount: + RustLib.instance.api.rust_arc_decrement_strong_count_TorProxyHandle, + rustArcDecrementStrongCountPtr: + RustLib.instance.api.rust_arc_decrement_strong_count_TorProxyHandlePtr, + ); +} diff --git a/lib/src/rust/frb_generated.io.dart b/lib/src/rust/frb_generated.io.dart new file mode 100644 index 00000000..7af0d0b2 --- /dev/null +++ b/lib/src/rust/frb_generated.io.dart @@ -0,0 +1,366 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field + +import 'api/tor.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'dart:ffi' as ffi; +import 'frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_io.dart'; + +abstract class RustLibApiImplPlatform extends BaseApiImpl { + RustLibApiImplPlatform({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorClientWrapperPtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapperPtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorInstancePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstancePtr; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorProxyHandlePtr => wire + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandlePtr; + + @protected + TorClientWrapper + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw); + + @protected + TorInstance + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorProxyHandle + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + dynamic raw); + + @protected + TorInstance + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorClientWrapper + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw); + + @protected + TorInstance + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorClientWrapper + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw); + + @protected + TorInstance + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorProxyHandle + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + dynamic raw); + + @protected + String dco_decode_String(dynamic raw); + + @protected + bool dco_decode_bool(dynamic raw); + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + + @protected + TorError dco_decode_tor_error(dynamic raw); + + @protected + int dco_decode_u_16(dynamic raw); + + @protected + BigInt dco_decode_u_64(dynamic raw); + + @protected + int dco_decode_u_8(dynamic raw); + + @protected + void dco_decode_unit(dynamic raw); + + @protected + BigInt dco_decode_usize(dynamic raw); + + @protected + TorClientWrapper + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorProxyHandle + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorClientWrapper + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorClientWrapper + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorProxyHandle + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + SseDeserializer deserializer); + + @protected + String sse_decode_String(SseDeserializer deserializer); + + @protected + bool sse_decode_bool(SseDeserializer deserializer); + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + + @protected + TorError sse_decode_tor_error(SseDeserializer deserializer); + + @protected + int sse_decode_u_16(SseDeserializer deserializer); + + @protected + BigInt sse_decode_u_64(SseDeserializer deserializer); + + @protected + int sse_decode_u_8(SseDeserializer deserializer); + + @protected + void sse_decode_unit(SseDeserializer deserializer); + + @protected + BigInt sse_decode_usize(SseDeserializer deserializer); + + @protected + int sse_decode_i_32(SseDeserializer deserializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + TorProxyHandle self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + TorProxyHandle self, SseSerializer serializer); + + @protected + void sse_encode_String(String self, SseSerializer serializer); + + @protected + void sse_encode_bool(bool self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, SseSerializer serializer); + + @protected + void sse_encode_tor_error(TorError self, SseSerializer serializer); + + @protected + void sse_encode_u_16(int self, SseSerializer serializer); + + @protected + void sse_encode_u_64(BigInt self, SseSerializer serializer); + + @protected + void sse_encode_u_8(int self, SseSerializer serializer); + + @protected + void sse_encode_unit(void self, SseSerializer serializer); + + @protected + void sse_encode_usize(BigInt self, SseSerializer serializer); + + @protected + void sse_encode_i_32(int self, SseSerializer serializer); +} + +// Section: wire_class + +class RustLibWire implements BaseWire { + factory RustLibWire.fromExternalLibrary(ExternalLibrary lib) => + RustLibWire(lib.ffiDynamicLibrary); + + /// Holds the symbol lookup function. + final ffi.Pointer Function(String symbolName) + _lookup; + + /// The symbols are looked up in [dynamicLibrary]. + RustLibWire(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapperPtr = + _lookup)>>( + 'frbgen_tor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapperPtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapperPtr = + _lookup)>>( + 'frbgen_tor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapperPtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstancePtr = + _lookup)>>( + 'frbgen_tor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstancePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstancePtr = + _lookup)>>( + 'frbgen_tor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstancePtr + .asFunction)>(); + + void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ffi.Pointer ptr, + ) { + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr, + ); + } + + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandlePtr = + _lookup)>>( + 'frbgen_tor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandlePtr + .asFunction)>(); + + void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ffi.Pointer ptr, + ) { + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr, + ); + } + + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandlePtr = + _lookup)>>( + 'frbgen_tor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandlePtr + .asFunction)>(); +} diff --git a/lib/src/rust/frb_generated.web.dart b/lib/src/rust/frb_generated.web.dart new file mode 100644 index 00000000..92d347f5 --- /dev/null +++ b/lib/src/rust/frb_generated.web.dart @@ -0,0 +1,330 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +// ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field + +// Static analysis wrongly picks the IO variant, thus ignore this +// ignore_for_file: argument_type_not_assignable + +import 'api/tor.dart'; +import 'dart:async'; +import 'dart:convert'; +import 'frb_generated.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated_web.dart'; + +abstract class RustLibApiImplPlatform extends BaseApiImpl { + RustLibApiImplPlatform({ + required super.handler, + required super.wire, + required super.generalizedFrbRustBinding, + required super.portManager, + }); + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorClientWrapperPtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorInstancePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance; + + CrossPlatformFinalizerArg + get rust_arc_decrement_strong_count_TorProxyHandlePtr => wire + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle; + + @protected + TorClientWrapper + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw); + + @protected + TorInstance + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorProxyHandle + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + dynamic raw); + + @protected + TorInstance + dco_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorClientWrapper + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw); + + @protected + TorInstance + dco_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorClientWrapper + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + dynamic raw); + + @protected + TorInstance + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + dynamic raw); + + @protected + TorProxyHandle + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + dynamic raw); + + @protected + String dco_decode_String(dynamic raw); + + @protected + bool dco_decode_bool(dynamic raw); + + @protected + Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + + @protected + TorError dco_decode_tor_error(dynamic raw); + + @protected + int dco_decode_u_16(dynamic raw); + + @protected + BigInt dco_decode_u_64(dynamic raw); + + @protected + int dco_decode_u_8(dynamic raw); + + @protected + void dco_decode_unit(dynamic raw); + + @protected + BigInt dco_decode_usize(dynamic raw); + + @protected + TorClientWrapper + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorProxyHandle + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorClientWrapper + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorClientWrapper + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + SseDeserializer deserializer); + + @protected + TorInstance + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + SseDeserializer deserializer); + + @protected + TorProxyHandle + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + SseDeserializer deserializer); + + @protected + String sse_decode_String(SseDeserializer deserializer); + + @protected + bool sse_decode_bool(SseDeserializer deserializer); + + @protected + Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + + @protected + TorError sse_decode_tor_error(SseDeserializer deserializer); + + @protected + int sse_decode_u_16(SseDeserializer deserializer); + + @protected + BigInt sse_decode_u_64(SseDeserializer deserializer); + + @protected + int sse_decode_u_8(SseDeserializer deserializer); + + @protected + void sse_decode_unit(SseDeserializer deserializer); + + @protected + BigInt sse_decode_usize(SseDeserializer deserializer); + + @protected + int sse_decode_i_32(SseDeserializer deserializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + TorProxyHandle self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_RefMut_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer); + + @protected + void + sse_encode_Auto_Ref_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + TorClientWrapper self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + TorInstance self, SseSerializer serializer); + + @protected + void + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + TorProxyHandle self, SseSerializer serializer); + + @protected + void sse_encode_String(String self, SseSerializer serializer); + + @protected + void sse_encode_bool(bool self, SseSerializer serializer); + + @protected + void sse_encode_list_prim_u_8_strict( + Uint8List self, SseSerializer serializer); + + @protected + void sse_encode_tor_error(TorError self, SseSerializer serializer); + + @protected + void sse_encode_u_16(int self, SseSerializer serializer); + + @protected + void sse_encode_u_64(BigInt self, SseSerializer serializer); + + @protected + void sse_encode_u_8(int self, SseSerializer serializer); + + @protected + void sse_encode_unit(void self, SseSerializer serializer); + + @protected + void sse_encode_usize(BigInt self, SseSerializer serializer); + + @protected + void sse_encode_i_32(int self, SseSerializer serializer); +} + +// Section: wire_class + +class RustLibWire implements BaseWire { + RustLibWire.fromExternalLibrary(ExternalLibrary lib); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + int ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + int ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + int ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + int ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr); + + void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + int ptr) => + wasmModule + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr); + + void rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + int ptr) => + wasmModule + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr); +} + +@JS('wasm_bindgen') +external RustLibWasmModule get wasmModule; + +@JS() +@anonymous +extension type RustLibWasmModule._(JSObject _) implements JSObject { + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + int ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + int ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + int ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + int ptr); + + external void + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + int ptr); + + external void + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + int ptr); +} diff --git a/lib/tor.dart b/lib/tor.dart index f2b57aac..ab4b1dfa 100644 --- a/lib/tor.dart +++ b/lib/tor.dart @@ -4,46 +4,43 @@ // SPDX-License-Identifier: MIT import 'dart:async'; -import 'dart:ffi'; import 'dart:io'; -import 'dart:isolate'; import 'dart:math'; -import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; import 'package:path_provider/path_provider.dart'; -import 'package:tor/generated_bindings.dart' as rust; - -DynamicLibrary load(String name) { - if (Platform.isAndroid || Platform.isLinux) { - return DynamicLibrary.open('lib$name.so'); - } else if (Platform.isIOS || Platform.isMacOS) { - return DynamicLibrary.open('$name.framework/$name'); - } else if (Platform.isWindows) { - return DynamicLibrary.open('$name.dll'); - } else { - throw NotSupportedPlatform('${Platform.operatingSystem} is not supported!'); - } -} + +import 'src/rust/frb_generated.dart'; +import 'src/rust/api/tor.dart' as rust; + +export 'src/rust/api/tor.dart' show TorError; class CouldntBootstrapDirectory implements Exception { String? rustError; CouldntBootstrapDirectory({this.rustError}); + + @override + String toString() => 'CouldntBootstrapDirectory: $rustError'; } class NotSupportedPlatform implements Exception { - NotSupportedPlatform(String s); + final String platform; + NotSupportedPlatform(this.platform); + + @override + String toString() => 'NotSupportedPlatform: $platform'; } -class ClientNotActive implements Exception {} +class ClientNotActive implements Exception { + @override + String toString() => 'ClientNotActive: Tor client is not active'; +} class Tor { - static const String libName = "tor"; - static late DynamicLibrary _lib; - - Pointer _clientPtr = nullptr; - Pointer _proxyPtr = nullptr; + rust.TorClientWrapper? _client; + rust.TorProxyHandle? _proxy; /// Flag to indicate that Tor client and proxy have started. Traffic is routed through the proxy only if it is also [enabled]. bool get started => _started; @@ -92,6 +89,9 @@ class Tor { /// Getter for the singleton instance of the Tor class. static Tor get instance => _instance; + /// Whether RustLib has been initialized. + static bool _rustLibInitialized = false; + /// Initialize the Tor ffi lib instance if it hasn't already been set. Nothing /// changes if _tor is already been set. /// @@ -101,13 +101,18 @@ class Tor { static Future init({bool enabled = true}) async { var singleton = Tor._instance; singleton._enabled = enabled; + + // Initialize RustLib if not already done + if (!_rustLibInitialized) { + await RustLib.init(); + _rustLibInitialized = true; + } + return singleton; } /// Private constructor for the Tor class. Tor._internal() { - _lib = load(libName); - if (kDebugMode) { print("Instance of Tor created!"); } @@ -155,6 +160,12 @@ class Tor { Future start() async { broadcastState(); + // Ensure RustLib is initialized + if (!_rustLibInitialized) { + await RustLib.init(); + _rustLibInitialized = true; + } + // Set the state and cache directories. final Directory appSupportDir = await getApplicationSupportDirectory(); final stateDir = @@ -165,36 +176,27 @@ class Tor { // Generate a random port. int newPort = await _getRandomUnusedPort(); - // Start the Tor service in an isolate. - final tor = await Isolate.run(() async { - // Load the Tor library. - var lib = rust.NativeLibrary(load(libName)); - - // Start the Tor service. - final tor = lib.tor_start( - newPort, - stateDir.path.toNativeUtf8() as Pointer, - cacheDir.path.toNativeUtf8() as Pointer); - - // Throw an exception if the Tor service fails to start. - if (tor.client == nullptr) { - throwRustException(lib); - } - - return tor; - }); - - // Set the client pointer and started flag. - _clientPtr = Pointer.fromAddress(tor.client.address); - _proxyPtr = Pointer.fromAddress(tor.proxy.address); - _started = true; - - // Bootstrap the Tor service. - bootstrap(); - - // Set the proxy port. - _proxyPort = newPort; - broadcastState(); + try { + // Start Tor - this is a blocking operation + final torInstance = await rust.startTor( + socksPort: newPort, + stateDir: stateDir.path, + cacheDir: cacheDir.path, + ); + + _client = torInstance.client; + _proxy = torInstance.proxy; + _proxyPort = torInstance.socksPort; + _started = true; + _bootstrapped = true; // startTor creates a bootstrapped client + + broadcastState(); + } on rust.TorError catch (e) { + throw CouldntBootstrapDirectory(rustError: e.toString()); + } on PanicException catch (e) { + // FRB converts Rust panics to PanicException - this is the key benefit! + throw CouldntBootstrapDirectory(rustError: 'Rust panic: ${e.message}'); + } } /// Bootstrap the Tor service. @@ -207,16 +209,17 @@ class Tor { /// Throws an exception if the Tor service fails to bootstrap. /// /// Returns void. - void bootstrap() { - // Load the Tor library. - final lib = rust.NativeLibrary(_lib); - - // Bootstrap the Tor service. - _bootstrapped = lib.tor_client_bootstrap(_clientPtr); + Future bootstrap() async { + if (_client == null) { + throw ClientNotActive(); + } - // Throw an exception if the Tor service fails to bootstrap. - if (!bootstrapped) { - throwRustException(lib); + try { + await rust.bootstrap(client: _client!); + _bootstrapped = true; + } on rust.TorError catch (e) { + _bootstrapped = false; + throw CouldntBootstrapDirectory(rustError: e.toString()); } } @@ -229,25 +232,37 @@ class Tor { /// Stops the proxy Future stop() async { // Return early if already stopped - if (_proxyPtr == nullptr) { + if (_proxy == null) { return; } - final lib = rust.NativeLibrary(_lib); - lib.tor_proxy_stop(_proxyPtr); - _proxyPtr = nullptr; + try { + // This is now safe! FRB catches any panic and throws PanicException + await rust.stopProxy(proxy: _proxy!); + } on rust.TorError catch (e) { + if (kDebugMode) { + print('Error stopping proxy: $e'); + } + } on PanicException catch (e) { + // Previously this would SIGABRT the app, now it's catchable! + if (kDebugMode) { + print('Proxy stop panicked (caught safely): ${e.message}'); + } + } + + _proxy = null; + _client = null; _started = false; _bootstrapped = false; broadcastState(); } Future setClientDormant(bool dormant) async { - if (_clientPtr == nullptr || !started || !bootstrapped) { + if (_client == null || !started || !bootstrapped) { throw ClientNotActive(); } - final lib = rust.NativeLibrary(_lib); - lib.tor_client_set_dormant(_clientPtr, dormant); + await rust.setDormant(client: _client!, softMode: dormant); } Future isReady() async { @@ -269,21 +284,7 @@ class Tor { })); } - static void throwRustException(rust.NativeLibrary lib) { - String rustError = lib.tor_last_error_message().cast().toDartString(); - - throw _getRustException(rustError); - } - - static Exception _getRustException(String rustError) { - if (rustError.contains('Unable to bootstrap a working directory')) { - return CouldntBootstrapDirectory(rustError: rustError); - } else { - return Exception(rustError); - } - } - void hello() { - rust.NativeLibrary(_lib).tor_hello(); + rust.hello(); } } diff --git a/lib/util.dart b/lib/util.dart index e6557a03..6fd3a71b 100644 --- a/lib/util.dart +++ b/lib/util.dart @@ -2,13 +2,14 @@ // // SPDX-License-Identifier: MIT -import 'package:tor/generated_bindings.dart' as rust; -import 'package:tor/tor.dart'; +import 'src/rust/api/tor.dart' as rust; -int getNofileLimit() { - return rust.NativeLibrary(load(Tor.libName)).tor_get_nofile_limit(); +Future getNofileLimit() async { + final limit = await rust.getNofileLimit(); + return limit.toInt(); } -int setNofileLimit(int limit) { - return rust.NativeLibrary(load(Tor.libName)).tor_set_nofile_limit(limit); +Future setNofileLimit(int limit) async { + final result = await rust.setNofileLimit(limit: BigInt.from(limit)); + return result.toInt(); } diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index d753f853..46709393 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -8,20 +8,16 @@ cmake_minimum_required(VERSION 3.10) # Project-level configuration. -set(PROJECT_NAME "tor") +set(PROJECT_NAME "rust_lib_tor") project(${PROJECT_NAME} LANGUAGES CXX) -# Invoke the build for native code shared with the other target platforms. -# This can be changed to accommodate different builds. include("../cargokit/cmake/cargokit.cmake") -apply_cargokit(${PROJECT_NAME} ../rust tor "") +apply_cargokit(${PROJECT_NAME} ../rust rust_lib_tor "") # List of absolute paths to libraries that should be bundled with the plugin. # This list could contain prebuilt libraries, or libraries created by an # external build triggered from this build file. -set(tor_bundled_libraries - # Defined in ../src/CMakeLists.txt. - # This can be changed to accommodate different builds. +set(rust_lib_tor_bundled_libraries "${${PROJECT_NAME}_cargokit_lib}" PARENT_SCOPE ) diff --git a/macos/Classes/dummy_file.c b/macos/Classes/dummy_file.c new file mode 100644 index 00000000..a092da28 --- /dev/null +++ b/macos/Classes/dummy_file.c @@ -0,0 +1,7 @@ +/* + * SPDX-FileCopyrightText: 2024 Foundation Devices Inc + * + * SPDX-License-Identifier: MIT + */ + +// This is an empty file to force CocoaPods to create a framework. diff --git a/macos/Classes/tor_ffi_plugin.c b/macos/Classes/tor_ffi_plugin.c deleted file mode 100644 index bc3f15a2..00000000 --- a/macos/Classes/tor_ffi_plugin.c +++ /dev/null @@ -1,12 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - * - * SPDX-License-Identifier: MIT - */ - -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -// Relative import to be able to reuse the C sources. -// See the comment in ../{projectName}}.podspec for more information. diff --git a/macos/rust_lib_backup.podspec.license b/macos/rust_lib_backup.podspec.license new file mode 100644 index 00000000..b28499ea --- /dev/null +++ b/macos/rust_lib_backup.podspec.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2024 Foundation Devices Inc + +SPDX-License-Identifier: MIT diff --git a/macos/rust_lib_tor.podspec b/macos/rust_lib_tor.podspec new file mode 100644 index 00000000..2e7ceff0 --- /dev/null +++ b/macos/rust_lib_tor.podspec @@ -0,0 +1,45 @@ +# +# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +# SPDX-License-Identifier: MIT +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint rust_lib_tor.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'rust_lib_tor' + s.version = '0.0.1' + s.summary = 'Rust library for Tor proxy' + s.description = <<-DESC +Rust library providing Tor proxy functionality via arti. + DESC + s.homepage = 'https://github.com/Foundation-Devices/tor' + s.license = { :file => '../LICENSE' } + s.author = { 'Foundation Devices' => 'hello@foundation.xyz' } + + # This will ensure the source files in Classes/ are included in the native + # builds of apps using this FFI plugin. Podspec does not support relative + # paths, so Classes contains a forwarder C file that relatively imports + # `../src/*` so that the C sources can be shared among all target platforms. + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.dependency 'FlutterMacOS' + + s.platform = :osx, '10.11' + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } + s.swift_version = '5.0' + + s.script_phase = { + :name => 'Build Rust library', + # First argument is relative path to the `rust` folder, second is name of rust library + :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../rust rust_lib_tor', + :execution_position => :before_compile, + :input_files => ['${BUILT_PRODUCTS_DIR}/cargokit_phony'], + # Let XCode know that the static library referenced in -force_load below is + # created by this build step. + :output_files => ["${BUILT_PRODUCTS_DIR}/librust_lib_tor.a"], + } + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/librust_lib_tor.a', + } +end diff --git a/macos/tor.podspec b/macos/tor.podspec deleted file mode 100644 index c134b8eb..00000000 --- a/macos/tor.podspec +++ /dev/null @@ -1,39 +0,0 @@ -# -# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. -# Run `pod lib lint tor.podspec` to validate before publishing. -# -Pod::Spec.new do |s| - s.name = 'tor' - s.version = '0.0.1' - s.summary = 'A new Flutter FFI plugin project.' - s.description = <<-DESC -A new Flutter FFI plugin project. - DESC - s.homepage = 'http://example.com' - s.license = { :file => '../LICENSE' } - s.author = { 'Your Company' => 'email@example.com' } - - s.source = { :path => '.' } - s.source_files = 'Classes/**/*' - s.platform = :osx, '10.13' - - s.script_phase = { - :name => 'Build Rust library', - # First argument is relative path to the `rust` folder, second is name of rust library - :script => 'sh "$PODS_TARGET_SRCROOT/../cargokit/build_pod.sh" ../rust tor', - :execution_position => :before_compile, - :input_files => ['${BUILT_PRODUCTS_DIR}/cargokit_phony'], - # Let XCode know that the static library referenced in -force_load below is - # created by this build step. - :output_files => ["${BUILT_PRODUCTS_DIR}/libtor.a"], - } - s.pod_target_xcconfig = { - 'DEFINES_MODULE' => 'YES', - # We use `-force_load` instead of `-l` since Xcode strips out unused symbols from static libraries. - 'OTHER_LDFLAGS' => '-force_load ${BUILT_PRODUCTS_DIR}/libtor.a', - 'DEAD_CODE_STRIPPING' => 'YES', - 'STRIP_INSTALLED_PRODUCT[config=Release][sdk=*][arch=*]' => "YES", - 'STRIP_STYLE[config=Release][sdk=*][arch=*]' => "non-global", - 'DEPLOYMENT_POSTPROCESSING[config=Release][sdk=*][arch=*]' => "YES", - } -end \ No newline at end of file diff --git a/macos/tor.podspec.license b/macos/tor.podspec.license deleted file mode 100644 index 7b44746f..00000000 --- a/macos/tor.podspec.license +++ /dev/null @@ -1,3 +0,0 @@ -SPDX-FileCopyrightText: 2024 Foundation Devices Inc. - -SPDX-License-Identifier: MIT diff --git a/pubspec.yaml b/pubspec.yaml index d8a9cc67..eb99a0c2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,79 +4,28 @@ name: tor description: A multi-platform Flutter plugin for managing a Tor proxy. Based on arti. -version: 0.1.1 +version: 0.2.0 homepage: https://github.com/Foundation-Devices/tor -platforms: - android: - ios: - linux: - macos: - windows: - environment: - sdk: '>=3.0.0 <4.0.0' + sdk: '>=3.3.0 <4.0.0' flutter: ">=3.3.0" dependencies: flutter: sdk: flutter path_provider: ^2.1.5 - ffi: ^2.1.4 - plugin_platform_interface: ^2.1.8 + flutter_rust_bridge: 2.11.1 + freezed_annotation: ^2.4.1 dev_dependencies: - ffigen: ^19.1.0 flutter_test: sdk: flutter flutter_lints: ^6.0.0 + freezed: ^2.4.5 + build_runner: ^2.4.7 -ffigen: - output: 'lib/generated_bindings.dart' - llvm-path: - - '/usr/lib/llvm-14/lib/libclang.so.1' - functions: - include: - - tor_.* - structs: - exclude: - - .* - unions: - exclude: - - .* - enums: - exclude: - - _.* - unnamed-enums: - exclude: - - _.* - macros: - exclude: - - _.* - globals: - exclude: - - _.* - headers: - entry-points: - - 'rust/target/tor.h' - -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter packages. flutter: - # This section identifies this Flutter project as a plugin project. - # The 'pluginClass' specifies the class (in Java, Kotlin, Swift, Objective-C, etc.) - # which should be registered in the plugin registry. This is required for - # using method channels. - # The Android 'package' specifies package in which the registered class is. - # This is required for using method channels on Android. - # The 'ffiPlugin' specifies that native code should be built and bundled. - # This is required for using `dart:ffi`. - # All these are used by the tooling to maintain consistency when - # adding or updating assets for this project. - # - # Please refer to README.md for a detailed explanation. plugin: platforms: android: diff --git a/rust/Cargo.lock b/rust/Cargo.lock index a5383fab..4b943311 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -38,6 +38,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "allo-isolate" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449e356a4864c017286dbbec0e12767ea07efba29e3b7d984194c2a7ff3c4550" +dependencies = [ + "anyhow", + "atomic 0.5.3", + "backtrace", +] + [[package]] name = "amplify" version = "4.8.1" @@ -88,6 +99,23 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + +[[package]] +name = "android_logger" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" +dependencies = [ + "android_log-sys", + "env_filter", + "log", +] + [[package]] name = "android_system_properties" version = "0.1.5" @@ -174,7 +202,7 @@ dependencies = [ "anyhow", "arti-client", "cfg-if", - "clap 4.5.38", + "clap", "derive_builder_fork_arti", "fs-mistrust", "futures", @@ -398,17 +426,6 @@ dependencies = [ "bytemuck", ] -[[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" @@ -513,6 +530,12 @@ dependencies = [ "serde", ] +[[package]] +name = "build-target" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832133bbabbbaa9fbdba793456a2827627a7d2b8fb96032fa1e7666d7895832b" + [[package]] name = "bumpalo" version = "3.17.0" @@ -555,25 +578,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" -[[package]] -name = "cbindgen" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb" -dependencies = [ - "clap 3.2.25", - "heck 0.4.1", - "indexmap 1.9.3", - "log", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 1.0.109", - "tempfile", - "toml 0.5.11", -] - [[package]] name = "cc" version = "1.2.23" @@ -642,21 +646,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags 1.3.2", - "clap_lex 0.2.4", - "indexmap 1.9.3", - "strsim 0.10.0", - "termcolor", - "textwrap", -] - [[package]] name = "clap" version = "4.5.38" @@ -675,7 +664,7 @@ checksum = "379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120" dependencies = [ "anstream", "anstyle", - "clap_lex 0.7.4", + "clap_lex", "strsim 0.11.1", "terminal_size", ] @@ -686,21 +675,12 @@ version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.101", ] -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - [[package]] name = "clap_lex" version = "0.7.4" @@ -733,6 +713,16 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -800,7 +790,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.38", + "clap", "criterion-plot", "itertools 0.13.0", "num-traits", @@ -1017,12 +1007,45 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "dart-sys" +version = "4.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57967e4b200d767d091b961d6ab42cc7d0cc14fe9e052e75d0d3cf9eb732d895" +dependencies = [ + "cc", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "data-encoding" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +[[package]] +name = "delegate-attr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51aac4c99b2e6775164b412ea33ae8441b2fde2dbf05a20bc0052a63d08c475b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "der" version = "0.7.10" @@ -1065,7 +1088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8ea84d0109517cc2253d4a679bdda1e8989e9bd86987e9e4f75ffdda0095fd1" dependencies = [ "derive-deftly-macros 0.14.6", - "heck 0.5.0", + "heck", ] [[package]] @@ -1075,7 +1098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d308ebe4b10924331bd079044b418da7b227d724d3e2408567a47ad7c3da2a0" dependencies = [ "derive-deftly-macros 1.3.0", - "heck 0.5.0", + "heck", ] [[package]] @@ -1084,7 +1107,7 @@ version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357422a457ccb850dc8f1c1680e0670079560feaad6c2e247e3f345c4fab8a3f" dependencies = [ - "heck 0.5.0", + "heck", "indexmap 2.12.1", "itertools 0.14.0", "proc-macro-crate", @@ -1102,7 +1125,7 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd5f2b7218a51c827a11d22d1439b598121fac94bf9b99452e4afffe512d78c9" dependencies = [ - "heck 0.5.0", + "heck", "indexmap 2.12.1", "itertools 0.14.0", "proc-macro-crate", @@ -1315,7 +1338,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.101", @@ -1346,6 +1369,16 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "env_filter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +dependencies = [ + "log", + "regex", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1448,6 +1481,48 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "749cff877dc1af878a0b31a41dd221a753634401ea0ef2f87b62d3171522485a" +[[package]] +name = "flutter_rust_bridge" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde126295b2acc5f0a712e265e91b6fdc0ed38767496483e592ae7134db83725" +dependencies = [ + "allo-isolate", + "android_logger", + "anyhow", + "build-target", + "bytemuck", + "byteorder", + "console_error_panic_hook", + "dart-sys", + "delegate-attr", + "flutter_rust_bridge_macros", + "futures", + "js-sys", + "lazy_static", + "log", + "oslog", + "portable-atomic", + "threadpool", + "tokio", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "flutter_rust_bridge_macros" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f0420326b13675321b194928bb7830043b68cf8b810e1c651285c747abb080" +dependencies = [ + "hex", + "md-5", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1690,6 +1765,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.3" @@ -1714,12 +1795,6 @@ dependencies = [ "hashbrown 0.15.3", ] -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -1728,12 +1803,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.1.19" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2212,6 +2284,16 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.7.4" @@ -2404,6 +2486,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "num_enum" version = "0.7.3" @@ -2556,6 +2648,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "oslog" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d2043d1f61d77cb2f4b1f7b7b2295f40507f5f8e9d1c8bf10a1ca5f97a3969" +dependencies = [ + "cc", + "dashmap", + "log", +] + [[package]] name = "p256" version = "0.13.2" @@ -3134,6 +3237,25 @@ dependencies = [ "time", ] +[[package]] +name = "rust_lib_tor" +version = "0.2.0" +dependencies = [ + "anyhow", + "arti", + "arti-client", + "flutter_rust_bridge", + "lazy_static", + "log", + "rlimit", + "security-framework", + "thiserror 1.0.69", + "time", + "tokio", + "tor-config", + "tor-rtcompat", +] + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -3634,7 +3756,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "rustversion", @@ -3719,15 +3841,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "terminal_size" version = "0.4.2" @@ -3738,12 +3851,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "textwrap" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" - [[package]] name = "thiserror" version = "1.0.69" @@ -3794,6 +3901,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.41" @@ -3903,15 +4019,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.8.22" @@ -3992,24 +4099,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" -[[package]] -name = "tor" -version = "0.1.1" -dependencies = [ - "anyhow", - "arti", - "arti-client", - "cbindgen", - "lazy_static", - "log", - "rlimit", - "security-framework", - "time", - "tokio", - "tor-config", - "tor-rtcompat", -] - [[package]] name = "tor-async-utils" version = "0.36.0" @@ -5290,6 +5379,19 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.100" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 60e4c019..f7050c9b 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -3,15 +3,16 @@ # SPDX-License-Identifier: MIT [package] -name = "tor" -version = "0.1.1" +name = "rust_lib_tor" +version = "0.2.0" authors = ["Igor Cota "] edition = "2021" [lib] -crate-type = ["cdylib", "staticlib"] +crate-type = ["cdylib", "staticlib", "rlib"] [dependencies] +flutter_rust_bridge = "=2.11.1" lazy_static = "1.4" tokio = { version = "1", features = ["full"] } arti-client = { version = "0.36.0", features = ["static", "onion-service-client"] } @@ -19,14 +20,14 @@ arti = { version = "1.7.0", features = ["experimental-api", "static"] } tor-rtcompat = { version = "0.36.0", features = ["static"] } tor-config = "0.36.0" log = "0.4.20" -#android_log-sys = "0.3.1" rlimit = "0.10.1" anyhow = "1.0.79" time = "0.3.36" +thiserror = "1.0" [target.'cfg(target_os = "ios")'.dependencies] # Specific version for iOS security-framework = "=2.10.0" -[build-dependencies] -cbindgen = "= 0.24.3" +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] } diff --git a/rust/build.rs b/rust/build.rs deleted file mode 100644 index eb3c238f..00000000 --- a/rust/build.rs +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-FileCopyrightText: 2023 Foundation Devices Inc. -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -use cbindgen::{Config, Language}; -use std::env; -use std::path::PathBuf; - -fn main() { - // Create C header files for Dart - let crate_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); - let package_name = env::var("CARGO_PKG_NAME").unwrap(); - - let output_file = target_dir() - .join(format!("{}.h", package_name)) - .display() - .to_string(); - - let config = Config { - language: Language::C, - ..Default::default() - }; - - cbindgen::generate_with_config(crate_dir, config) - .unwrap() - .write_to_file(output_file); -} - -fn target_dir() -> PathBuf { - if let Ok(target) = env::var("CARGO_TARGET_DIR") { - PathBuf::from(target) - } else { - PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("target") - } -} diff --git a/rust/src/api/mod.rs b/rust/src/api/mod.rs new file mode 100644 index 00000000..df75aa30 --- /dev/null +++ b/rust/src/api/mod.rs @@ -0,0 +1,5 @@ +// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +// +// SPDX-License-Identifier: MIT + +pub mod tor; diff --git a/rust/src/api/tor.rs b/rust/src/api/tor.rs new file mode 100644 index 00000000..faae3fc1 --- /dev/null +++ b/rust/src/api/tor.rs @@ -0,0 +1,227 @@ +// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +// +// SPDX-License-Identifier: MIT + +use anyhow::Result; +use arti::proxy; +use arti_client::config::CfgPath; +use arti_client::{DormantMode, TorClient, TorClientConfig}; +use flutter_rust_bridge::frb; +use lazy_static::lazy_static; +use std::io; +use std::sync::Arc; +use tokio::runtime::{Builder, Runtime}; +use tokio::task::JoinHandle; +use tor_config::Listen; +use tor_rtcompat::tokio::TokioNativeTlsRuntime; +use tor_rtcompat::ToplevelBlockOn; + +lazy_static! { + static ref RUNTIME: io::Result = Builder::new_multi_thread().enable_all().build(); +} + +/// Custom error types for Tor operations +#[derive(Debug, thiserror::Error)] +pub enum TorError { + #[error("Failed to bootstrap Tor: {0}")] + BootstrapError(String), + + #[error("Failed to start proxy: {0}")] + ProxyStartError(String), + + #[error("Failed to stop proxy: {0}")] + ProxyStopError(String), + + #[error("Client not initialized")] + ClientNotInitialized, + + #[error("Runtime error: {0}")] + RuntimeError(String), + + #[error("Configuration error: {0}")] + ConfigError(String), +} + +/// Opaque wrapper for TorClient - FRB handles this automatically +#[frb(opaque)] +pub struct TorClientWrapper { + client: Arc>, + runtime: TokioNativeTlsRuntime, +} + +impl Clone for TorClientWrapper { + fn clone(&self) -> Self { + TorClientWrapper { + client: Arc::clone(&self.client), + runtime: self.runtime.clone(), + } + } +} + +/// Opaque wrapper for proxy handle +#[frb(opaque)] +pub struct TorProxyHandle { + handle: Arc>>>>, +} + +impl Clone for TorProxyHandle { + fn clone(&self) -> Self { + TorProxyHandle { + handle: Arc::clone(&self.handle), + } + } +} + +/// Result of starting Tor - contains both client and proxy +pub struct TorInstance { + pub client: TorClientWrapper, + pub proxy: TorProxyHandle, + pub socks_port: u16, +} + +/// Initialize FRB +#[frb(init)] +pub fn init_app() { + flutter_rust_bridge::setup_default_user_utils(); +} + +/// Start Tor client and proxy +/// +/// This is a blocking operation that may take several seconds. +/// It bootstraps the Tor network connection and starts a SOCKS proxy. +pub fn start_tor( + socks_port: u16, + state_dir: String, + cache_dir: String, +) -> Result { + let runtime = + TokioNativeTlsRuntime::create().map_err(|e| TorError::RuntimeError(e.to_string()))?; + + let mut cfg_builder = TorClientConfig::builder(); + cfg_builder + .storage() + .state_dir(CfgPath::new(state_dir)) + .cache_dir(CfgPath::new(cache_dir)); + cfg_builder.address_filter().allow_onion_addrs(true); + cfg_builder + .preemptive_circuits() + .disable_at_threshold(1) + .min_exit_circs_for_port(1) + .initial_predicted_ports() + .clear(); + + let cfg = cfg_builder + .build() + .map_err(|e| TorError::ConfigError(e.to_string()))?; + + let client = runtime + .block_on(async { + TorClient::with_runtime(runtime.clone()) + .config(cfg) + .create_bootstrapped() + .await + }) + .map_err(|e| TorError::BootstrapError(e.to_string()))?; + + let client_arc = Arc::new(client); + let proxy_handle = start_proxy_internal(socks_port, Arc::clone(&client_arc))?; + + Ok(TorInstance { + client: TorClientWrapper { + client: client_arc, + runtime, + }, + proxy: TorProxyHandle { + handle: Arc::new(std::sync::Mutex::new(Some(proxy_handle))), + }, + socks_port, + }) +} + +fn start_proxy_internal( + port: u16, + client: Arc>, +) -> Result>, TorError> { + let rt = RUNTIME + .as_ref() + .map_err(|e| TorError::RuntimeError(e.to_string()))?; + + let client_ref = client.as_ref(); + Ok(rt.spawn(proxy::run_proxy( + client_ref.runtime().clone(), + client_ref.clone(), + Listen::new_localhost(port), + None, + ))) +} + +/// Re-bootstrap the Tor client +/// +/// Call this after network changes or to refresh the connection. +pub fn bootstrap(client: &TorClientWrapper) -> Result<(), TorError> { + client + .runtime + .block_on(client.client.as_ref().bootstrap()) + .map_err(|e| TorError::BootstrapError(e.to_string())) +} + +/// Set the client dormant mode +/// +/// * `soft_mode` - If true, uses Soft dormant mode (keeps some circuits warm) +/// If false, uses Normal mode (full operation) +pub fn set_dormant(client: &TorClientWrapper, soft_mode: bool) { + let dormant_mode = if soft_mode { + DormantMode::Soft + } else { + DormantMode::Normal + }; + client.client.as_ref().set_dormant(dormant_mode); +} + +/// Stop the Tor proxy +/// +/// This safely aborts the proxy task. Previously this could panic +/// and crash the app - with FRB, any panic becomes a catchable exception. +pub fn stop_proxy(proxy: TorProxyHandle) -> Result<(), TorError> { + // Take the handle out of the Option to abort it + // This ensures we only abort once even if called multiple times + let mut guard = proxy + .handle + .lock() + .map_err(|e| TorError::ProxyStopError(e.to_string()))?; + + if let Some(handle) = guard.take() { + // The abort() call is safe with FRB - any panic becomes PanicException + handle.abort(); + } + + Ok(()) +} + +/// Test function to verify library linking +pub fn hello() { + println!("HELLO THERE"); +} + +// Platform-specific rlimit functions +#[cfg(not(target_os = "windows"))] +pub fn get_nofile_limit() -> Result { + rlimit::getrlimit(rlimit::Resource::NOFILE) + .map(|(soft, _hard)| soft) + .map_err(|e| TorError::RuntimeError(e.to_string())) +} + +#[cfg(not(target_os = "windows"))] +pub fn set_nofile_limit(limit: u64) -> Result { + rlimit::increase_nofile_limit(limit).map_err(|e| TorError::RuntimeError(e.to_string())) +} + +#[cfg(target_os = "windows")] +pub fn get_nofile_limit() -> Result { + Ok(0) // Not applicable on Windows +} + +#[cfg(target_os = "windows")] +pub fn set_nofile_limit(_limit: u64) -> Result { + Ok(0) // Not applicable on Windows +} diff --git a/rust/src/error.rs b/rust/src/error.rs deleted file mode 100644 index 8a496eaf..00000000 --- a/rust/src/error.rs +++ /dev/null @@ -1,61 +0,0 @@ -// SPDX-FileCopyrightText: 2023 Foundation Devices Inc. -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -use log::{error, warn}; -use std::cell::RefCell; -use std::error::Error; -use std::ffi::{c_char, CString}; -//pub(crate) use crate::unwrap_or_return; - -thread_local! { - static LAST_ERROR: RefCell>> = RefCell::new(None); -} - -#[no_mangle] -pub unsafe extern "C" fn tor_last_error_message() -> *const c_char { - let last_error = match crate::error::take_last_error() { - Some(err) => err, - None => return CString::new("").unwrap().into_raw(), - }; - - let error_message = last_error.to_string(); - CString::new(error_message).unwrap().into_raw() -} - -macro_rules! unwrap_or_return { - ($a:expr,$b:expr) => { - match $a { - Ok(x) => x, - Err(e) => { - update_last_error(e); - return $b; - } - } - }; -} - -/// Update the most recent error, clearing whatever may have been there before. -pub fn update_last_error(err: E) { - error!("Setting LAST_ERROR: {}", err); - - { - // Print a pseudo-backtrace for this error, following back each error's - // cause until we reach the root error. - let mut cause = err.source(); - while let Some(parent_err) = cause { - warn!("Caused by: {}", parent_err); - cause = parent_err.source(); - } - } - - LAST_ERROR.with(|prev| { - *prev.borrow_mut() = Some(Box::new(err)); - }); -} - -/// Retrieve the most recent error, clearing it in the process. -pub fn take_last_error() -> Option> { - LAST_ERROR.with(|prev| prev.borrow_mut().take()) -} diff --git a/rust/src/frb_generated.rs b/rust/src/frb_generated.rs new file mode 100644 index 00000000..ffef2610 --- /dev/null +++ b/rust/src/frb_generated.rs @@ -0,0 +1,1251 @@ +// This file is automatically generated, so please do not edit it. +// @generated by `flutter_rust_bridge`@ 2.11.1. + +#![allow( + non_camel_case_types, + unused, + non_snake_case, + clippy::needless_return, + clippy::redundant_closure_call, + clippy::redundant_closure, + clippy::useless_conversion, + clippy::unit_arg, + clippy::unused_unit, + clippy::double_parens, + clippy::let_and_return, + clippy::too_many_arguments, + clippy::match_single_binding, + clippy::clone_on_copy, + clippy::let_unit_value, + clippy::deref_addrof, + clippy::explicit_auto_deref, + clippy::borrow_deref_ref, + clippy::needless_borrow +)] + +// Section: imports + +use crate::api::tor::*; +use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; +use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; +use flutter_rust_bridge::{Handler, IntoIntoDart}; + +// Section: boilerplate + +flutter_rust_bridge::frb_generated_boilerplate!( + default_stream_sink_codec = SseCodec, + default_rust_opaque = RustOpaqueMoi, + default_rust_auto_opaque = RustAutoOpaqueMoi, +); +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.11.1"; +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = 333622112; + +// Section: executor + +flutter_rust_bridge::frb_generated_default_handler!(); + +// Section: wire_funcs + +fn wire__crate__api__tor__TorInstance_auto_accessor_get_client_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "TorInstance_auto_accessor_get_client", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.client.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__tor__TorInstance_auto_accessor_get_proxy_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "TorInstance_auto_accessor_get_proxy", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.proxy.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__tor__TorInstance_auto_accessor_get_socks_port_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "TorInstance_auto_accessor_get_socks_port", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok(api_that_guard.socks_port.clone())?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__tor__TorInstance_auto_accessor_set_client_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "TorInstance_auto_accessor_set_client", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_client = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.client = api_client; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__tor__TorInstance_auto_accessor_set_proxy_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "TorInstance_auto_accessor_set_proxy", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_proxy = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.proxy = api_proxy; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__tor__TorInstance_auto_accessor_set_socks_port_impl( + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "TorInstance_auto_accessor_set_socks_port", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_that = , + >>::sse_decode(&mut deserializer); + let api_socks_port = ::sse_decode(&mut deserializer); + deserializer.end(); + transform_result_sse::<_, ()>((move || { + let mut api_that_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_that, 0, true, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_that_guard = Some(api_that.lockable_decode_sync_ref_mut()), + _ => unreachable!(), + } + } + let mut api_that_guard = api_that_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + { + api_that_guard.socks_port = api_socks_port; + }; + })?; + Ok(output_ok) + })()) + }, + ) +} +fn wire__crate__api__tor__bootstrap_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "bootstrap", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_client = , + >>::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, crate::api::tor::TorError>((move || { + let mut api_client_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_client, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_client_guard = Some(api_client.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_client_guard = api_client_guard.unwrap(); + let output_ok = crate::api::tor::bootstrap(&*api_client_guard)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__get_nofile_limit_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "get_nofile_limit", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, crate::api::tor::TorError>((move || { + let output_ok = crate::api::tor::get_nofile_limit()?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__hello_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "hello", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok({ + crate::api::tor::hello(); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__init_app_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "init_app", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok({ + crate::api::tor::init_app(); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__set_dormant_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "set_dormant", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_client = , + >>::sse_decode(&mut deserializer); + let api_soft_mode = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, ()>((move || { + let mut api_client_guard = None; + let decode_indices_ = + flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ + flutter_rust_bridge::for_generated::LockableOrderInfo::new( + &api_client, + 0, + false, + ), + ]); + for i in decode_indices_ { + match i { + 0 => api_client_guard = Some(api_client.lockable_decode_sync_ref()), + _ => unreachable!(), + } + } + let api_client_guard = api_client_guard.unwrap(); + let output_ok = Result::<_, ()>::Ok({ + crate::api::tor::set_dormant(&*api_client_guard, api_soft_mode); + })?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__set_nofile_limit_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "set_nofile_limit", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_limit = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, crate::api::tor::TorError>((move || { + let output_ok = crate::api::tor::set_nofile_limit(api_limit)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__start_tor_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "start_tor", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_socks_port = ::sse_decode(&mut deserializer); + let api_state_dir = ::sse_decode(&mut deserializer); + let api_cache_dir = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, crate::api::tor::TorError>((move || { + let output_ok = + crate::api::tor::start_tor(api_socks_port, api_state_dir, api_cache_dir)?; + Ok(output_ok) + })()) + } + }, + ) +} +fn wire__crate__api__tor__stop_proxy_impl( + port_: flutter_rust_bridge::for_generated::MessagePort, + ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len_: i32, + data_len_: i32, +) { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_normal::( + flutter_rust_bridge::for_generated::TaskInfo { + debug_name: "stop_proxy", + port: Some(port_), + mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + }, + move || { + let message = unsafe { + flutter_rust_bridge::for_generated::Dart2RustMessageSse::from_wire( + ptr_, + rust_vec_len_, + data_len_, + ) + }; + let mut deserializer = + flutter_rust_bridge::for_generated::SseDeserializer::new(message); + let api_proxy = ::sse_decode(&mut deserializer); + deserializer.end(); + move |context| { + transform_result_sse::<_, crate::api::tor::TorError>((move || { + let output_ok = crate::api::tor::stop_proxy(api_proxy)?; + Ok(output_ok) + })()) + } + }, + ) +} + +// Section: related_funcs + +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); +flutter_rust_bridge::frb_generated_moi_arc_impl_value!( + flutter_rust_bridge::for_generated::RustAutoOpaqueInner +); + +// Section: dart2rust + +impl SseDecode for TorClientWrapper { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for TorInstance { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode for TorProxyHandle { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = , + >>::sse_decode(deserializer); + return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = ::sse_decode(deserializer); + return decode_rust_opaque_moi(inner); + } +} + +impl SseDecode for String { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut inner = >::sse_decode(deserializer); + return String::from_utf8(inner).unwrap(); + } +} + +impl SseDecode for bool { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u8().unwrap() != 0 + } +} + +impl SseDecode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut len_ = ::sse_decode(deserializer); + let mut ans_ = vec![]; + for idx_ in 0..len_ { + ans_.push(::sse_decode(deserializer)); + } + return ans_; + } +} + +impl SseDecode for crate::api::tor::TorError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut tag_ = ::sse_decode(deserializer); + match tag_ { + 0 => { + let mut var_field0 = ::sse_decode(deserializer); + return crate::api::tor::TorError::BootstrapError(var_field0); + } + 1 => { + let mut var_field0 = ::sse_decode(deserializer); + return crate::api::tor::TorError::ProxyStartError(var_field0); + } + 2 => { + let mut var_field0 = ::sse_decode(deserializer); + return crate::api::tor::TorError::ProxyStopError(var_field0); + } + 3 => { + return crate::api::tor::TorError::ClientNotInitialized; + } + 4 => { + let mut var_field0 = ::sse_decode(deserializer); + return crate::api::tor::TorError::RuntimeError(var_field0); + } + 5 => { + let mut var_field0 = ::sse_decode(deserializer); + return crate::api::tor::TorError::ConfigError(var_field0); + } + _ => { + unimplemented!(""); + } + } + } +} + +impl SseDecode for u16 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u16::().unwrap() + } +} + +impl SseDecode for u64 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u64::().unwrap() + } +} + +impl SseDecode for u8 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u8().unwrap() + } +} + +impl SseDecode for () { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self {} +} + +impl SseDecode for usize { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_u64::().unwrap() as _ + } +} + +impl SseDecode for i32 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + deserializer.cursor.read_i32::().unwrap() + } +} + +fn pde_ffi_dispatcher_primary_impl( + func_id: i32, + port: flutter_rust_bridge::for_generated::MessagePort, + ptr: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len: i32, + data_len: i32, +) { + // Codec=Pde (Serialization + dispatch), see doc to use other codecs + match func_id { + 7 => wire__crate__api__tor__bootstrap_impl(port, ptr, rust_vec_len, data_len), + 8 => wire__crate__api__tor__get_nofile_limit_impl(port, ptr, rust_vec_len, data_len), + 9 => wire__crate__api__tor__hello_impl(port, ptr, rust_vec_len, data_len), + 10 => wire__crate__api__tor__init_app_impl(port, ptr, rust_vec_len, data_len), + 11 => wire__crate__api__tor__set_dormant_impl(port, ptr, rust_vec_len, data_len), + 12 => wire__crate__api__tor__set_nofile_limit_impl(port, ptr, rust_vec_len, data_len), + 13 => wire__crate__api__tor__start_tor_impl(port, ptr, rust_vec_len, data_len), + 14 => wire__crate__api__tor__stop_proxy_impl(port, ptr, rust_vec_len, data_len), + _ => unreachable!(), + } +} + +fn pde_ffi_dispatcher_sync_impl( + func_id: i32, + ptr: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, + rust_vec_len: i32, + data_len: i32, +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + // Codec=Pde (Serialization + dispatch), see doc to use other codecs + match func_id { + 1 => wire__crate__api__tor__TorInstance_auto_accessor_get_client_impl( + ptr, + rust_vec_len, + data_len, + ), + 2 => wire__crate__api__tor__TorInstance_auto_accessor_get_proxy_impl( + ptr, + rust_vec_len, + data_len, + ), + 3 => wire__crate__api__tor__TorInstance_auto_accessor_get_socks_port_impl( + ptr, + rust_vec_len, + data_len, + ), + 4 => wire__crate__api__tor__TorInstance_auto_accessor_set_client_impl( + ptr, + rust_vec_len, + data_len, + ), + 5 => wire__crate__api__tor__TorInstance_auto_accessor_set_proxy_impl( + ptr, + rust_vec_len, + data_len, + ), + 6 => wire__crate__api__tor__TorInstance_auto_accessor_set_socks_port_impl( + ptr, + rust_vec_len, + data_len, + ), + _ => unreachable!(), + } +} + +// Section: rust2dart + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for TorClientWrapper { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for TorInstance { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for FrbWrapper { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) + .into_dart() + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} + +impl flutter_rust_bridge::IntoIntoDart> for TorProxyHandle { + fn into_into_dart(self) -> FrbWrapper { + self.into() + } +} + +// Codec=Dco (DartCObject based), see doc to use other codecs +impl flutter_rust_bridge::IntoDart for crate::api::tor::TorError { + fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { + match self { + crate::api::tor::TorError::BootstrapError(field0) => { + [0.into_dart(), field0.into_into_dart().into_dart()].into_dart() + } + crate::api::tor::TorError::ProxyStartError(field0) => { + [1.into_dart(), field0.into_into_dart().into_dart()].into_dart() + } + crate::api::tor::TorError::ProxyStopError(field0) => { + [2.into_dart(), field0.into_into_dart().into_dart()].into_dart() + } + crate::api::tor::TorError::ClientNotInitialized => [3.into_dart()].into_dart(), + crate::api::tor::TorError::RuntimeError(field0) => { + [4.into_dart(), field0.into_into_dart().into_dart()].into_dart() + } + crate::api::tor::TorError::ConfigError(field0) => { + [5.into_dart(), field0.into_into_dart().into_dart()].into_dart() + } + _ => { + unimplemented!(""); + } + } + } +} +impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for crate::api::tor::TorError {} +impl flutter_rust_bridge::IntoIntoDart for crate::api::tor::TorError { + fn into_into_dart(self) -> crate::api::tor::TorError { + self + } +} + +impl SseEncode for TorClientWrapper { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for TorInstance { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode for TorProxyHandle { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode + for RustOpaqueMoi> +{ + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + let (ptr, size) = self.sse_encode_raw(); + ::sse_encode(ptr, serializer); + ::sse_encode(size, serializer); + } +} + +impl SseEncode for String { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >::sse_encode(self.into_bytes(), serializer); + } +} + +impl SseEncode for bool { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u8(self as _).unwrap(); + } +} + +impl SseEncode for Vec { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + ::sse_encode(self.len() as _, serializer); + for item in self { + ::sse_encode(item, serializer); + } + } +} + +impl SseEncode for crate::api::tor::TorError { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + match self { + crate::api::tor::TorError::BootstrapError(field0) => { + ::sse_encode(0, serializer); + ::sse_encode(field0, serializer); + } + crate::api::tor::TorError::ProxyStartError(field0) => { + ::sse_encode(1, serializer); + ::sse_encode(field0, serializer); + } + crate::api::tor::TorError::ProxyStopError(field0) => { + ::sse_encode(2, serializer); + ::sse_encode(field0, serializer); + } + crate::api::tor::TorError::ClientNotInitialized => { + ::sse_encode(3, serializer); + } + crate::api::tor::TorError::RuntimeError(field0) => { + ::sse_encode(4, serializer); + ::sse_encode(field0, serializer); + } + crate::api::tor::TorError::ConfigError(field0) => { + ::sse_encode(5, serializer); + ::sse_encode(field0, serializer); + } + _ => { + unimplemented!(""); + } + } + } +} + +impl SseEncode for u16 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u16::(self).unwrap(); + } +} + +impl SseEncode for u64 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u64::(self).unwrap(); + } +} + +impl SseEncode for u8 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_u8(self).unwrap(); + } +} + +impl SseEncode for () { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) {} +} + +impl SseEncode for usize { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer + .cursor + .write_u64::(self as _) + .unwrap(); + } +} + +impl SseEncode for i32 { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + serializer.cursor.write_i32::(self).unwrap(); + } +} + +#[cfg(not(target_family = "wasm"))] +mod io { + // This file is automatically generated, so please do not edit it. + // @generated by `flutter_rust_bridge`@ 2.11.1. + + // Section: imports + + use super::*; + use crate::api::tor::*; + use flutter_rust_bridge::for_generated::byteorder::{ + NativeEndian, ReadBytesExt, WriteBytesExt, + }; + use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; + use flutter_rust_bridge::{Handler, IntoIntoDart}; + + // Section: boilerplate + + flutter_rust_bridge::frb_generated_boilerplate_io!(); + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_tor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_tor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_tor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_tor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_tor_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[unsafe(no_mangle)] + pub extern "C" fn frbgen_tor_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } +} +#[cfg(not(target_family = "wasm"))] +pub use io::*; + +/// cbindgen:ignore +#[cfg(target_family = "wasm")] +mod web { + // This file is automatically generated, so please do not edit it. + // @generated by `flutter_rust_bridge`@ 2.11.1. + + // Section: imports + + use super::*; + use crate::api::tor::*; + use flutter_rust_bridge::for_generated::byteorder::{ + NativeEndian, ReadBytesExt, WriteBytesExt, + }; + use flutter_rust_bridge::for_generated::wasm_bindgen; + use flutter_rust_bridge::for_generated::wasm_bindgen::prelude::*; + use flutter_rust_bridge::for_generated::{transform_result_dco, Lifetimeable, Lockable}; + use flutter_rust_bridge::{Handler, IntoIntoDart}; + + // Section: boilerplate + + flutter_rust_bridge::frb_generated_boilerplate_web!(); + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorClientWrapper( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorInstance( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::increment_strong_count(ptr as _); + } + + #[wasm_bindgen] + pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerTorProxyHandle( + ptr: *const std::ffi::c_void, + ) { + MoiArc::>::decrement_strong_count(ptr as _); + } +} +#[cfg(target_family = "wasm")] +pub use web::*; diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 14d7a9d3..2e704edc 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -1,149 +1,6 @@ -// SPDX-FileCopyrightText: 2023 Foundation Devices Inc. // SPDX-FileCopyrightText: 2024 Foundation Devices Inc. // // SPDX-License-Identifier: MIT -use crate::error::update_last_error; -use arti::proxy; -use arti_client::config::CfgPath; -use arti_client::{DormantMode, TorClient, TorClientConfig}; -use lazy_static::lazy_static; -use std::ffi::{c_char, c_void, CStr}; -use std::{io, ptr}; -use tokio::runtime::{Builder, Runtime}; -use tokio::task::JoinHandle; -use tor_config::Listen; -use tor_rtcompat::tokio::TokioNativeTlsRuntime; -use tor_rtcompat::ToplevelBlockOn; - -pub use crate::error::tor_last_error_message; -#[cfg(not(target_os = "windows"))] -pub use crate::util::tor_get_nofile_limit; -#[cfg(not(target_os = "windows"))] -pub use crate::util::tor_set_nofile_limit; - -#[macro_use] -mod error; -mod util; - -lazy_static! { - static ref RUNTIME: io::Result = Builder::new_multi_thread().enable_all().build(); -} - -#[repr(C)] -pub struct Tor { - client: *mut c_void, - proxy: *mut c_void, -} - -#[no_mangle] -pub unsafe extern "C" fn tor_start( - socks_port: u16, - state_dir: *const c_char, - cache_dir: *const c_char, -) -> Tor { - let err_ret = Tor { - client: ptr::null_mut(), - proxy: ptr::null_mut(), - }; - - let state_dir = unwrap_or_return!(CStr::from_ptr(state_dir).to_str(), err_ret); - let cache_dir = unwrap_or_return!(CStr::from_ptr(cache_dir).to_str(), err_ret); - - let runtime = unwrap_or_return!(TokioNativeTlsRuntime::create(), err_ret); - - let mut cfg_builder = TorClientConfig::builder(); - cfg_builder - .storage() - .state_dir(CfgPath::new(state_dir.to_owned())) - .cache_dir(CfgPath::new(cache_dir.to_owned())); - cfg_builder.address_filter().allow_onion_addrs(true); - cfg_builder - .preemptive_circuits() - .disable_at_threshold(1) - .min_exit_circs_for_port(1) - .initial_predicted_ports() - .clear(); - - let cfg = unwrap_or_return!(cfg_builder.build(), err_ret); - - let client = unwrap_or_return!( - runtime.block_on(async { - TorClient::with_runtime(runtime.clone()) - .config(cfg) - .create_bootstrapped() - .await - }), - err_ret - ); - - let proxy_handle_box = Box::new(start_proxy(socks_port, client.clone())); - let client_box = Box::new(client.clone()); - - Tor { - client: Box::into_raw(client_box) as *mut c_void, - proxy: Box::into_raw(proxy_handle_box) as *mut c_void, - } -} - -#[no_mangle] -pub unsafe extern "C" fn tor_client_bootstrap(client: *mut c_void) -> bool { - // Return false if client is null (not started) - if client.is_null() { - return false; - } - - let client = Box::from_raw(client as *mut TorClient); - - unwrap_or_return!(client.runtime().block_on(client.bootstrap()), false); - true -} - -#[no_mangle] -pub unsafe extern "C" fn tor_client_set_dormant(client: *mut c_void, soft_mode: bool) { - // Return early if client is null (not started) - if client.is_null() { - return; - } - - let client = Box::from_raw(client as *mut TorClient); - - let dormant_mode = if soft_mode { - DormantMode::Soft - } else { - DormantMode::Normal - }; - client.set_dormant(dormant_mode); - Box::leak(client); -} - -#[no_mangle] -pub unsafe extern "C" fn tor_proxy_stop(proxy: *mut c_void) { - // Return early if proxy is null (already stopped or never started) - if proxy.is_null() { - return; - } - - let proxy = Box::from_raw(proxy as *mut JoinHandle>); - proxy.abort(); -} - -fn start_proxy( - port: u16, - client: TorClient, -) -> JoinHandle> { - println!("Starting proxy!"); - let rt = RUNTIME.as_ref().unwrap(); - rt.spawn(proxy::run_proxy( - client.runtime().clone(), - client.clone(), - Listen::new_localhost(port), - None, - )) -} - -// Due to its simple signature this dummy function is the one added (unused) to iOS swift codebase to force Xcode to link the lib -#[no_mangle] -pub unsafe extern "C" fn tor_hello() { - println!("HELLO THERE"); -} +pub mod api; +mod frb_generated; diff --git a/rust/src/util.rs b/rust/src/util.rs deleted file mode 100644 index 595a1068..00000000 --- a/rust/src/util.rs +++ /dev/null @@ -1,18 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Foundation Devices Inc. -// -// SPDX-License-Identifier: MIT - -use crate::error::update_last_error; - -#[no_mangle] -#[cfg(not(target_os = "windows"))] -pub unsafe extern "C" fn tor_get_nofile_limit() -> u64 { - let nofile_limit = unwrap_or_return!(rlimit::getrlimit(rlimit::Resource::NOFILE), 0); - nofile_limit.0 -} - -#[no_mangle] -#[cfg(not(target_os = "windows"))] -pub unsafe extern "C" fn tor_set_nofile_limit(limit: u64) -> u64 { - unwrap_or_return!(rlimit::increase_nofile_limit(limit), 0) -} diff --git a/rust/target/flycheck0/stderr b/rust/target/flycheck0/stderr new file mode 100644 index 00000000..90cd6580 --- /dev/null +++ b/rust/target/flycheck0/stderr @@ -0,0 +1,2995 @@ + 0.437668479s INFO prepare_target{force=false package_id=rust_lib_tor v0.2.0 (/home/icota/Code/tor/rust) target="rust_lib_tor"}: cargo::core::compiler::fingerprint: fingerprint error for rust_lib_tor v0.2.0 (/home/icota/Code/tor/rust)/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("rust_lib_tor", ["cdylib", "staticlib", "rlib"], "/home/icota/Code/tor/rust/src/lib.rs", Edition2021) } + 0.437782881s INFO prepare_target{force=false package_id=rust_lib_tor v0.2.0 (/home/icota/Code/tor/rust) target="rust_lib_tor"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/rust_lib_tor-52249cbb1fd741c9/lib-rust_lib_tor` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: ::compile + 6: cargo::ops::cargo_compile::compile_ws + 7: cargo::ops::cargo_compile::compile_with_exec + 8: cargo::ops::cargo_compile::compile + 9: cargo::commands::check::exec + 10: ::exec + 11: cargo::main + 12: std::sys::backtrace::__rust_begin_short_backtrace:: + 13: std::rt::lang_start::<()>::{closure#0} + 14: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 15: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 16: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 17: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 18: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 23: main + 24: __libc_start_call_main + 25: __libc_start_main_alias_2 + 26: + 0.446597665s INFO prepare_target{force=false package_id=arti v1.7.0 target="arti"}: cargo::core::compiler::fingerprint: fingerprint error for arti v1.7.0/Check { test: false }/TargetInner { ..: lib_target("arti", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/arti-1.7.0/src/lib.rs", Edition2024) } + 0.446622821s INFO prepare_target{force=false package_id=arti v1.7.0 target="arti"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/arti-67477e690baadcc1/lib-arti` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: ::compile + 7: cargo::ops::cargo_compile::compile_ws + 8: cargo::ops::cargo_compile::compile_with_exec + 9: cargo::ops::cargo_compile::compile + 10: cargo::commands::check::exec + 11: ::exec + 12: cargo::main + 13: std::sys::backtrace::__rust_begin_short_backtrace:: + 14: std::rt::lang_start::<()>::{closure#0} + 15: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 16: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 17: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 18: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 19: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 24: main + 25: __libc_start_call_main + 26: __libc_start_main_alias_2 + 27: + 0.448577281s INFO prepare_target{force=false package_id=arti-client v0.36.0 target="arti_client"}: cargo::core::compiler::fingerprint: fingerprint error for arti-client v0.36.0/Check { test: false }/TargetInner { ..: lib_target("arti_client", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/arti-client-0.36.0/src/lib.rs", Edition2024) } + 0.448588662s INFO prepare_target{force=false package_id=arti-client v0.36.0 target="arti_client"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/arti-client-fa09836dbcb302f1/lib-arti_client` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: ::compile + 8: cargo::ops::cargo_compile::compile_ws + 9: cargo::ops::cargo_compile::compile_with_exec + 10: cargo::ops::cargo_compile::compile + 11: cargo::commands::check::exec + 12: ::exec + 13: cargo::main + 14: std::sys::backtrace::__rust_begin_short_backtrace:: + 15: std::rt::lang_start::<()>::{closure#0} + 16: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 17: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 18: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 19: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 20: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 25: main + 26: __libc_start_call_main + 27: __libc_start_main_alias_2 + 28: + 0.453455785s INFO prepare_target{force=false package_id=once_cell v1.21.3 target="once_cell"}: cargo::core::compiler::fingerprint: fingerprint error for once_cell v1.21.3/Check { test: false }/TargetInner { ..: lib_target("once_cell", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs", Edition2021) } + 0.453491311s INFO prepare_target{force=false package_id=once_cell v1.21.3 target="once_cell"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/once_cell-bc7a45c545f1fd75/lib-once_cell` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.453804741s INFO prepare_target{force=false package_id=portable-atomic v1.11.1 target="portable_atomic"}: cargo::core::compiler::fingerprint: fingerprint error for portable-atomic v1.11.1/Check { test: false }/TargetInner { doc_scrape_examples: Disabled, ..: lib_target("portable_atomic", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/portable-atomic-1.11.1/src/lib.rs", Edition2018) } + 0.453810412s INFO prepare_target{force=false package_id=portable-atomic v1.11.1 target="portable_atomic"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/portable-atomic-ee45d6ce4edd676c/lib-portable_atomic` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.454037162s INFO prepare_target{force=false package_id=portable-atomic v1.11.1 target="build-script-build"}: cargo::core::compiler::fingerprint: fingerprint error for portable-atomic v1.11.1/RunCustomBuild/TargetInner { ..: custom_build_target("build-script-build", "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/portable-atomic-1.11.1/build.rs", Edition2018) } + 0.454043694s INFO prepare_target{force=false package_id=portable-atomic v1.11.1 target="build-script-build"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/portable-atomic-3de5c13cf18dba1c/run-build-script-build-script-build` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::custom_build::build_work + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.455529846s INFO prepare_target{force=false package_id=tor-chanmgr v0.36.0 target="tor_chanmgr"}: cargo::core::compiler::fingerprint: fingerprint error for tor-chanmgr v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_chanmgr", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-chanmgr-0.36.0/src/lib.rs", Edition2024) } + 0.455545936s INFO prepare_target{force=false package_id=tor-chanmgr v0.36.0 target="tor_chanmgr"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-chanmgr-089ade99ab647f4e/lib-tor_chanmgr` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.457123617s INFO prepare_target{force=false package_id=tor-cell v0.36.0 target="tor_cell"}: cargo::core::compiler::fingerprint: fingerprint error for tor-cell v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_cell", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-cell-0.36.0/src/lib.rs", Edition2024) } + 0.457135069s INFO prepare_target{force=false package_id=tor-cell v0.36.0 target="tor_cell"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-cell-5b23ca18ce901525/lib-tor_cell` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.457996063s INFO prepare_target{force=false package_id=tor-bytes v0.36.0 target="tor_bytes"}: cargo::core::compiler::fingerprint: fingerprint error for tor-bytes v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_bytes", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-bytes-0.36.0/src/lib.rs", Edition2024) } + 0.458003467s INFO prepare_target{force=false package_id=tor-bytes v0.36.0 target="tor_bytes"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-bytes-dd389bb2f702b2a3/lib-tor_bytes` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.458844474s INFO prepare_target{force=false package_id=tor-error v0.36.0 target="tor_error"}: cargo::core::compiler::fingerprint: fingerprint error for tor-error v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_error", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-error-0.36.0/src/lib.rs", Edition2024) } + 0.458863970s INFO prepare_target{force=false package_id=tor-error v0.36.0 target="tor_error"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-error-44e3a86eb53fb3a3/lib-tor_error` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.459146674s INFO prepare_target{force=false package_id=tracing v0.1.41 target="tracing"}: cargo::core::compiler::fingerprint: fingerprint error for tracing v0.1.41/Check { test: false }/TargetInner { ..: lib_target("tracing", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/lib.rs", Edition2018) } + 0.459150631s INFO prepare_target{force=false package_id=tracing v0.1.41 target="tracing"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tracing-2a776af9f277050c/lib-tracing` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: ::compile + 13: cargo::ops::cargo_compile::compile_ws + 14: cargo::ops::cargo_compile::compile_with_exec + 15: cargo::ops::cargo_compile::compile + 16: cargo::commands::check::exec + 17: ::exec + 18: cargo::main + 19: std::sys::backtrace::__rust_begin_short_backtrace:: + 20: std::rt::lang_start::<()>::{closure#0} + 21: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 26: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 27: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 28: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 29: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 30: main + 31: __libc_start_call_main + 32: __libc_start_main_alias_2 + 33: + 0.459266045s INFO prepare_target{force=false package_id=tracing-core v0.1.33 target="tracing_core"}: cargo::core::compiler::fingerprint: fingerprint error for tracing-core v0.1.33/Check { test: false }/TargetInner { ..: lib_target("tracing_core", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-core-0.1.33/src/lib.rs", Edition2018) } + 0.459269852s INFO prepare_target{force=false package_id=tracing-core v0.1.33 target="tracing_core"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tracing-core-37abcc8364a5eee8/lib-tracing_core` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: ::compile + 14: cargo::ops::cargo_compile::compile_ws + 15: cargo::ops::cargo_compile::compile_with_exec + 16: cargo::ops::cargo_compile::compile + 17: cargo::commands::check::exec + 18: ::exec + 19: cargo::main + 20: std::sys::backtrace::__rust_begin_short_backtrace:: + 21: std::rt::lang_start::<()>::{closure#0} + 22: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 27: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 28: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 29: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 30: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 31: main + 32: __libc_start_call_main + 33: __libc_start_main_alias_2 + 34: + 0.459342006s INFO prepare_target{force=false package_id=tor-llcrypto v0.36.0 target="tor_llcrypto"}: cargo::core::compiler::fingerprint: fingerprint error for tor-llcrypto v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_llcrypto", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-llcrypto-0.36.0/src/lib.rs", Edition2024) } + 0.459344761s INFO prepare_target{force=false package_id=tor-llcrypto v0.36.0 target="tor_llcrypto"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-llcrypto-79a7e8de0d81323b/lib-tor_llcrypto` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.461739245s INFO prepare_target{force=false package_id=tor-memquota v0.36.0 target="tor_memquota"}: cargo::core::compiler::fingerprint: fingerprint error for tor-memquota v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_memquota", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-memquota-0.36.0/src/lib.rs", Edition2024) } + 0.461747050s INFO prepare_target{force=false package_id=tor-memquota v0.36.0 target="tor_memquota"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-memquota-ccdafbfb7b56c8b1/lib-tor_memquota` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: ::compile + 13: cargo::ops::cargo_compile::compile_ws + 14: cargo::ops::cargo_compile::compile_with_exec + 15: cargo::ops::cargo_compile::compile + 16: cargo::commands::check::exec + 17: ::exec + 18: cargo::main + 19: std::sys::backtrace::__rust_begin_short_backtrace:: + 20: std::rt::lang_start::<()>::{closure#0} + 21: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 26: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 27: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 28: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 29: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 30: main + 31: __libc_start_call_main + 32: __libc_start_main_alias_2 + 33: + 0.462479957s INFO prepare_target{force=false package_id=tor-config v0.36.0 target="tor_config"}: cargo::core::compiler::fingerprint: fingerprint error for tor-config v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_config", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-config-0.36.0/src/lib.rs", Edition2024) } + 0.462489424s INFO prepare_target{force=false package_id=tor-config v0.36.0 target="tor_config"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-config-9fc7e3dd07cf9e02/lib-tor_config` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: ::compile + 14: cargo::ops::cargo_compile::compile_ws + 15: cargo::ops::cargo_compile::compile_with_exec + 16: cargo::ops::cargo_compile::compile + 17: cargo::commands::check::exec + 18: ::exec + 19: cargo::main + 20: std::sys::backtrace::__rust_begin_short_backtrace:: + 21: std::rt::lang_start::<()>::{closure#0} + 22: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 27: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 28: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 29: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 30: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 31: main + 32: __libc_start_call_main + 33: __libc_start_main_alias_2 + 34: + 0.463754587s INFO prepare_target{force=false package_id=tor-rtcompat v0.36.0 target="tor_rtcompat"}: cargo::core::compiler::fingerprint: fingerprint error for tor-rtcompat v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_rtcompat", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-rtcompat-0.36.0/src/lib.rs", Edition2024) } + 0.463763363s INFO prepare_target{force=false package_id=tor-rtcompat v0.36.0 target="tor_rtcompat"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-rtcompat-0a93d12766b1e661/lib-tor_rtcompat` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: cargo::core::compiler::compile + 14: ::compile + 15: cargo::ops::cargo_compile::compile_ws + 16: cargo::ops::cargo_compile::compile_with_exec + 17: cargo::ops::cargo_compile::compile + 18: cargo::commands::check::exec + 19: ::exec + 20: cargo::main + 21: std::sys::backtrace::__rust_begin_short_backtrace:: + 22: std::rt::lang_start::<()>::{closure#0} + 23: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 28: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 29: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 30: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 31: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 32: main + 33: __libc_start_call_main + 34: __libc_start_main_alias_2 + 35: + 0.464333169s INFO prepare_target{force=false package_id=async-native-tls v0.5.0 target="async_native_tls"}: cargo::core::compiler::fingerprint: fingerprint error for async-native-tls v0.5.0/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("async_native_tls", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-native-tls-0.5.0/src/lib.rs", Edition2018) } + 0.464340713s INFO prepare_target{force=false package_id=async-native-tls v0.5.0 target="async_native_tls"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/async-native-tls-59e071d4ca70240b/lib-async_native_tls` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: cargo::core::compiler::compile + 14: cargo::core::compiler::compile + 15: ::compile + 16: cargo::ops::cargo_compile::compile_ws + 17: cargo::ops::cargo_compile::compile_with_exec + 18: cargo::ops::cargo_compile::compile + 19: cargo::commands::check::exec + 20: ::exec + 21: cargo::main + 22: std::sys::backtrace::__rust_begin_short_backtrace:: + 23: std::rt::lang_start::<()>::{closure#0} + 24: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 29: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 30: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 31: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 32: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 33: main + 34: __libc_start_call_main + 35: __libc_start_main_alias_2 + 36: + 0.464655055s INFO prepare_target{force=false package_id=native-tls v0.2.14 target="native_tls"}: cargo::core::compiler::fingerprint: fingerprint error for native-tls v0.2.14/Check { test: false }/TargetInner { ..: lib_target("native_tls", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/native-tls-0.2.14/src/lib.rs", Edition2015) } + 0.464662889s INFO prepare_target{force=false package_id=native-tls v0.2.14 target="native_tls"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/native-tls-6629cd15cfb9d8b8/lib-native_tls` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: cargo::core::compiler::compile + 14: cargo::core::compiler::compile + 15: cargo::core::compiler::compile + 16: ::compile + 17: cargo::ops::cargo_compile::compile_ws + 18: cargo::ops::cargo_compile::compile_with_exec + 19: cargo::ops::cargo_compile::compile + 20: cargo::commands::check::exec + 21: ::exec + 22: cargo::main + 23: std::sys::backtrace::__rust_begin_short_backtrace:: + 24: std::rt::lang_start::<()>::{closure#0} + 25: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 26: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 27: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 28: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 29: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 30: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 31: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 32: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 33: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 34: main + 35: __libc_start_call_main + 36: __libc_start_main_alias_2 + 37: + 0.467669337s INFO prepare_target{force=false package_id=openssl v0.10.72 target="openssl"}: cargo::core::compiler::fingerprint: fingerprint error for openssl v0.10.72/Check { test: false }/TargetInner { ..: lib_target("openssl", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.72/src/lib.rs", Edition2021) } + 0.467697619s INFO prepare_target{force=false package_id=openssl v0.10.72 target="openssl"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/openssl-85aa94bf64761b85/lib-openssl` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: cargo::core::compiler::compile + 14: cargo::core::compiler::compile + 15: cargo::core::compiler::compile + 16: cargo::core::compiler::compile + 17: ::compile + 18: cargo::ops::cargo_compile::compile_ws + 19: cargo::ops::cargo_compile::compile_with_exec + 20: cargo::ops::cargo_compile::compile + 21: cargo::commands::check::exec + 22: ::exec + 23: cargo::main + 24: std::sys::backtrace::__rust_begin_short_backtrace:: + 25: std::rt::lang_start::<()>::{closure#0} + 26: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 27: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 28: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 29: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 30: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 31: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 32: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 33: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 34: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 35: main + 36: __libc_start_call_main + 37: __libc_start_main_alias_2 + 38: + 0.469937838s INFO prepare_target{force=false package_id=tor-log-ratelim v0.36.0 target="tor_log_ratelim"}: cargo::core::compiler::fingerprint: fingerprint error for tor-log-ratelim v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_log_ratelim", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-log-ratelim-0.36.0/src/lib.rs", Edition2024) } + 0.469956392s INFO prepare_target{force=false package_id=tor-log-ratelim v0.36.0 target="tor_log_ratelim"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-log-ratelim-61510588239dbe7b/lib-tor_log_ratelim` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: ::compile + 14: cargo::ops::cargo_compile::compile_ws + 15: cargo::ops::cargo_compile::compile_with_exec + 16: cargo::ops::cargo_compile::compile + 17: cargo::commands::check::exec + 18: ::exec + 19: cargo::main + 20: std::sys::backtrace::__rust_begin_short_backtrace:: + 21: std::rt::lang_start::<()>::{closure#0} + 22: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 27: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 28: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 29: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 30: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 31: main + 32: __libc_start_call_main + 33: __libc_start_main_alias_2 + 34: + 0.470782382s INFO prepare_target{force=false package_id=tor-cert v0.36.0 target="tor_cert"}: cargo::core::compiler::fingerprint: fingerprint error for tor-cert v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_cert", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-cert-0.36.0/src/lib.rs", Edition2024) } + 0.470803400s INFO prepare_target{force=false package_id=tor-cert v0.36.0 target="tor_cert"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-cert-faa056e936835d5f/lib-tor_cert` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.471941779s INFO prepare_target{force=false package_id=tor-checkable v0.36.0 target="tor_checkable"}: cargo::core::compiler::fingerprint: fingerprint error for tor-checkable v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_checkable", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-checkable-0.36.0/src/lib.rs", Edition2024) } + 0.471951006s INFO prepare_target{force=false package_id=tor-checkable v0.36.0 target="tor_checkable"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-checkable-44ebe99e2ffe655a/lib-tor_checkable` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.472606720s INFO prepare_target{force=false package_id=tor-hscrypto v0.36.0 target="tor_hscrypto"}: cargo::core::compiler::fingerprint: fingerprint error for tor-hscrypto v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_hscrypto", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-hscrypto-0.36.0/src/lib.rs", Edition2024) } + 0.472613883s INFO prepare_target{force=false package_id=tor-hscrypto v0.36.0 target="tor_hscrypto"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-hscrypto-1be45d60038f701a/lib-tor_hscrypto` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.473399017s INFO prepare_target{force=false package_id=tor-key-forge v0.36.0 target="tor_key_forge"}: cargo::core::compiler::fingerprint: fingerprint error for tor-key-forge v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_key_forge", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-key-forge-0.36.0/src/lib.rs", Edition2024) } + 0.473405038s INFO prepare_target{force=false package_id=tor-key-forge v0.36.0 target="tor_key_forge"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-key-forge-86c0ebbe152364d8/lib-tor_key_forge` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.474160638s INFO prepare_target{force=false package_id=tor-units v0.36.0 target="tor_units"}: cargo::core::compiler::fingerprint: fingerprint error for tor-units v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_units", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-units-0.36.0/src/lib.rs", Edition2024) } + 0.474167480s INFO prepare_target{force=false package_id=tor-units v0.36.0 target="tor_units"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-units-e5cd9f71416ad76d/lib-tor_units` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.474584973s INFO prepare_target{force=false package_id=tor-linkspec v0.36.0 target="tor_linkspec"}: cargo::core::compiler::fingerprint: fingerprint error for tor-linkspec v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_linkspec", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-linkspec-0.36.0/src/lib.rs", Edition2024) } + 0.474589171s INFO prepare_target{force=false package_id=tor-linkspec v0.36.0 target="tor_linkspec"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-linkspec-fd4f13da97b11656/lib-tor_linkspec` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.475306299s INFO prepare_target{force=false package_id=tor-protover v0.36.0 target="tor_protover"}: cargo::core::compiler::fingerprint: fingerprint error for tor-protover v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_protover", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-protover-0.36.0/src/lib.rs", Edition2024) } + 0.475312861s INFO prepare_target{force=false package_id=tor-protover v0.36.0 target="tor_protover"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-protover-b3806e680c5f10e9/lib-tor_protover` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.475802618s INFO prepare_target{force=false package_id=tor-keymgr v0.36.0 target="tor_keymgr"}: cargo::core::compiler::fingerprint: fingerprint error for tor-keymgr v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_keymgr", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-keymgr-0.36.0/src/lib.rs", Edition2024) } + 0.475807487s INFO prepare_target{force=false package_id=tor-keymgr v0.36.0 target="tor_keymgr"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-keymgr-7863e143e1b33033/lib-tor_keymgr` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.476871197s INFO prepare_target{force=false package_id=tor-config-path v0.36.0 target="tor_config_path"}: cargo::core::compiler::fingerprint: fingerprint error for tor-config-path v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_config_path", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-config-path-0.36.0/src/lib.rs", Edition2024) } + 0.476883169s INFO prepare_target{force=false package_id=tor-config-path v0.36.0 target="tor_config_path"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-config-path-0287966029b75b5d/lib-tor_config_path` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.477313256s INFO prepare_target{force=false package_id=tor-persist v0.36.0 target="tor_persist"}: cargo::core::compiler::fingerprint: fingerprint error for tor-persist v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_persist", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-persist-0.36.0/src/lib.rs", Edition2024) } + 0.477323134s INFO prepare_target{force=false package_id=tor-persist v0.36.0 target="tor_persist"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-persist-bfb6e576ebcba4b2/lib-tor_persist` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.477996741s INFO prepare_target{force=false package_id=tor-netdir v0.36.0 target="tor_netdir"}: cargo::core::compiler::fingerprint: fingerprint error for tor-netdir v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_netdir", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-netdir-0.36.0/src/lib.rs", Edition2024) } + 0.478004566s INFO prepare_target{force=false package_id=tor-netdir v0.36.0 target="tor_netdir"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-netdir-7ba5b77183e3c7e9/lib-tor_netdir` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.478826408s INFO prepare_target{force=false package_id=tor-netdoc v0.36.0 target="tor_netdoc"}: cargo::core::compiler::fingerprint: fingerprint error for tor-netdoc v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_netdoc", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-netdoc-0.36.0/src/lib.rs", Edition2024) } + 0.478835364s INFO prepare_target{force=false package_id=tor-netdoc v0.36.0 target="tor_netdoc"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-netdoc-2b814244319e7c9d/lib-tor_netdoc` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.479931364s INFO prepare_target{force=false package_id=tor-proto v0.36.0 target="tor_proto"}: cargo::core::compiler::fingerprint: fingerprint error for tor-proto v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_proto", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-proto-0.36.0/src/lib.rs", Edition2024) } + 0.479938627s INFO prepare_target{force=false package_id=tor-proto v0.36.0 target="tor_proto"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-proto-e6f977f42ab71f1d/lib-tor_proto` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.482465106s INFO prepare_target{force=false package_id=tor-relay-crypto v0.36.0 target="tor_relay_crypto"}: cargo::core::compiler::fingerprint: fingerprint error for tor-relay-crypto v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_relay_crypto", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-relay-crypto-0.36.0/src/lib.rs", Edition2024) } + 0.482479623s INFO prepare_target{force=false package_id=tor-relay-crypto v0.36.0 target="tor_relay_crypto"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-relay-crypto-da31542fef0677dc/lib-tor_relay_crypto` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.483211909s INFO prepare_target{force=false package_id=tor-rtmock v0.36.0 target="tor_rtmock"}: cargo::core::compiler::fingerprint: fingerprint error for tor-rtmock v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_rtmock", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-rtmock-0.36.0/src/lib.rs", Edition2024) } + 0.483217600s INFO prepare_target{force=false package_id=tor-rtmock v0.36.0 target="tor_rtmock"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-rtmock-75b8884f97f6ae1d/lib-tor_rtmock` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.483718718s INFO prepare_target{force=false package_id=tracing-test v0.2.5 target="tracing_test"}: cargo::core::compiler::fingerprint: fingerprint error for tracing-test v0.2.5/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("tracing_test", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-test-0.2.5/src/lib.rs", Edition2018) } + 0.483724008s INFO prepare_target{force=false package_id=tracing-test v0.2.5 target="tracing_test"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tracing-test-b84e3687a911bcbb/lib-tracing_test` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.483884315s INFO prepare_target{force=false package_id=tracing-subscriber v0.3.20 target="tracing_subscriber"}: cargo::core::compiler::fingerprint: fingerprint error for tracing-subscriber v0.3.20/Check { test: false }/TargetInner { ..: lib_target("tracing_subscriber", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-subscriber-0.3.20/src/lib.rs", Edition2018) } + 0.483888713s INFO prepare_target{force=false package_id=tracing-subscriber v0.3.20 target="tracing_subscriber"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tracing-subscriber-fd221601d31e265b/lib-tracing_subscriber` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: ::compile + 13: cargo::ops::cargo_compile::compile_ws + 14: cargo::ops::cargo_compile::compile_with_exec + 15: cargo::ops::cargo_compile::compile + 16: cargo::commands::check::exec + 17: ::exec + 18: cargo::main + 19: std::sys::backtrace::__rust_begin_short_backtrace:: + 20: std::rt::lang_start::<()>::{closure#0} + 21: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 26: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 27: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 28: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 29: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 30: main + 31: __libc_start_call_main + 32: __libc_start_main_alias_2 + 33: + 0.484212032s INFO prepare_target{force=false package_id=thread_local v1.1.8 target="thread_local"}: cargo::core::compiler::fingerprint: fingerprint error for thread_local v1.1.8/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("thread_local", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thread_local-1.1.8/src/lib.rs", Edition2021) } + 0.484218393s INFO prepare_target{force=false package_id=thread_local v1.1.8 target="thread_local"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/thread_local-10368fcedf27f49c/lib-thread_local` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: ::compile + 14: cargo::ops::cargo_compile::compile_ws + 15: cargo::ops::cargo_compile::compile_with_exec + 16: cargo::ops::cargo_compile::compile + 17: cargo::commands::check::exec + 18: ::exec + 19: cargo::main + 20: std::sys::backtrace::__rust_begin_short_backtrace:: + 21: std::rt::lang_start::<()>::{closure#0} + 22: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 27: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 28: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 29: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 30: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 31: main + 32: __libc_start_call_main + 33: __libc_start_main_alias_2 + 34: + 0.484349196s INFO prepare_target{force=false package_id=tracing-log v0.2.0 target="tracing_log"}: cargo::core::compiler::fingerprint: fingerprint error for tracing-log v0.2.0/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("tracing_log", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-log-0.2.0/src/lib.rs", Edition2018) } + 0.484354936s INFO prepare_target{force=false package_id=tracing-log v0.2.0 target="tracing_log"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tracing-log-1a7a6ec611d4e416/lib-tracing_log` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: cargo::core::compiler::compile + 12: cargo::core::compiler::compile + 13: ::compile + 14: cargo::ops::cargo_compile::compile_ws + 15: cargo::ops::cargo_compile::compile_with_exec + 16: cargo::ops::cargo_compile::compile + 17: cargo::commands::check::exec + 18: ::exec + 19: cargo::main + 20: std::sys::backtrace::__rust_begin_short_backtrace:: + 21: std::rt::lang_start::<()>::{closure#0} + 22: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 27: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 28: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 29: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 30: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 31: main + 32: __libc_start_call_main + 33: __libc_start_main_alias_2 + 34: + 0.484513139s INFO prepare_target{force=false package_id=tor-socksproto v0.36.0 target="tor_socksproto"}: cargo::core::compiler::fingerprint: fingerprint error for tor-socksproto v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_socksproto", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-socksproto-0.36.0/src/lib.rs", Edition2024) } + 0.484517998s INFO prepare_target{force=false package_id=tor-socksproto v0.36.0 target="tor_socksproto"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-socksproto-dabd7c8ef38c03f2/lib-tor_socksproto` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.485844875s INFO prepare_target{force=false package_id=tor-circmgr v0.36.0 target="tor_circmgr"}: cargo::core::compiler::fingerprint: fingerprint error for tor-circmgr v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_circmgr", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-circmgr-0.36.0/src/lib.rs", Edition2024) } + 0.485855224s INFO prepare_target{force=false package_id=tor-circmgr v0.36.0 target="tor_circmgr"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-circmgr-59f42eb5601aceed/lib-tor_circmgr` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.488277901s INFO prepare_target{force=false package_id=tor-dircommon v0.36.0 target="tor_dircommon"}: cargo::core::compiler::fingerprint: fingerprint error for tor-dircommon v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_dircommon", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-dircommon-0.36.0/src/lib.rs", Edition2024) } + 0.488295403s INFO prepare_target{force=false package_id=tor-dircommon v0.36.0 target="tor_dircommon"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-dircommon-05da549fd6719777/lib-tor_dircommon` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.489584851s INFO prepare_target{force=false package_id=tor-guardmgr v0.36.0 target="tor_guardmgr"}: cargo::core::compiler::fingerprint: fingerprint error for tor-guardmgr v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_guardmgr", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-guardmgr-0.36.0/src/lib.rs", Edition2024) } + 0.489600460s INFO prepare_target{force=false package_id=tor-guardmgr v0.36.0 target="tor_guardmgr"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-guardmgr-59c76a126b918266/lib-tor_guardmgr` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.490847900s INFO prepare_target{force=false package_id=tor-relay-selection v0.36.0 target="tor_relay_selection"}: cargo::core::compiler::fingerprint: fingerprint error for tor-relay-selection v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_relay_selection", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-relay-selection-0.36.0/src/lib.rs", Edition2024) } + 0.490856847s INFO prepare_target{force=false package_id=tor-relay-selection v0.36.0 target="tor_relay_selection"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-relay-selection-96cd5fb46b237527/lib-tor_relay_selection` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: ::compile + 11: cargo::ops::cargo_compile::compile_ws + 12: cargo::ops::cargo_compile::compile_with_exec + 13: cargo::ops::cargo_compile::compile + 14: cargo::commands::check::exec + 15: ::exec + 16: cargo::main + 17: std::sys::backtrace::__rust_begin_short_backtrace:: + 18: std::rt::lang_start::<()>::{closure#0} + 19: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 24: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 25: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 26: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 27: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 28: main + 29: __libc_start_call_main + 30: __libc_start_main_alias_2 + 31: + 0.491502703s INFO prepare_target{force=false package_id=tor-dirmgr v0.36.0 target="tor_dirmgr"}: cargo::core::compiler::fingerprint: fingerprint error for tor-dirmgr v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_dirmgr", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-dirmgr-0.36.0/src/lib.rs", Edition2024) } + 0.491508694s INFO prepare_target{force=false package_id=tor-dirmgr v0.36.0 target="tor_dirmgr"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-dirmgr-b28f7fda7fc1d309/lib-tor_dirmgr` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.493221255s INFO prepare_target{force=false package_id=tor-consdiff v0.36.0 target="tor_consdiff"}: cargo::core::compiler::fingerprint: fingerprint error for tor-consdiff v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_consdiff", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-consdiff-0.36.0/src/lib.rs", Edition2024) } + 0.493239389s INFO prepare_target{force=false package_id=tor-consdiff v0.36.0 target="tor_consdiff"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-consdiff-8b103ab782d3c514/lib-tor_consdiff` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.494042867s INFO prepare_target{force=false package_id=tor-dirclient v0.36.0 target="tor_dirclient"}: cargo::core::compiler::fingerprint: fingerprint error for tor-dirclient v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_dirclient", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-dirclient-0.36.0/src/lib.rs", Edition2024) } + 0.494051252s INFO prepare_target{force=false package_id=tor-dirclient v0.36.0 target="tor_dirclient"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-dirclient-1b98df4e7c46e045/lib-tor_dirclient` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.495694305s INFO prepare_target{force=false package_id=tor-hsclient v0.36.0 target="tor_hsclient"}: cargo::core::compiler::fingerprint: fingerprint error for tor-hsclient v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_hsclient", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-hsclient-0.36.0/src/lib.rs", Edition2024) } + 0.495704965s INFO prepare_target{force=false package_id=tor-hsclient v0.36.0 target="tor_hsclient"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-hsclient-090472b56b01c590/lib-tor_hsclient` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.497101641s INFO prepare_target{force=false package_id=tor-ptmgr v0.36.0 target="tor_ptmgr"}: cargo::core::compiler::fingerprint: fingerprint error for tor-ptmgr v0.36.0/Check { test: false }/TargetInner { ..: lib_target("tor_ptmgr", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-ptmgr-0.36.0/src/lib.rs", Edition2024) } + 0.497114174s INFO prepare_target{force=false package_id=tor-ptmgr v0.36.0 target="tor_ptmgr"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tor-ptmgr-aab8abdeade64765/lib-tor_ptmgr` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.498469805s INFO prepare_target{force=false package_id=hickory-proto v0.25.2 target="hickory_proto"}: cargo::core::compiler::fingerprint: fingerprint error for hickory-proto v0.25.2/Check { test: false }/TargetInner { ..: lib_target("hickory_proto", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hickory-proto-0.25.2/src/lib.rs", Edition2021) } + 0.498481456s INFO prepare_target{force=false package_id=hickory-proto v0.25.2 target="hickory_proto"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/hickory-proto-54dfcdad77834ad7/lib-hickory_proto` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: ::compile + 8: cargo::ops::cargo_compile::compile_ws + 9: cargo::ops::cargo_compile::compile_with_exec + 10: cargo::ops::cargo_compile::compile + 11: cargo::commands::check::exec + 12: ::exec + 13: cargo::main + 14: std::sys::backtrace::__rust_begin_short_backtrace:: + 15: std::rt::lang_start::<()>::{closure#0} + 16: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 17: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 18: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 19: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 20: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 25: main + 26: __libc_start_call_main + 27: __libc_start_main_alias_2 + 28: + 0.499304711s INFO prepare_target{force=false package_id=secmem-proc v0.3.7 target="secmem_proc"}: cargo::core::compiler::fingerprint: fingerprint error for secmem-proc v0.3.7/Check { test: false }/TargetInner { ..: lib_target("secmem_proc", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/secmem-proc-0.3.7/src/lib.rs", Edition2021) } + 0.499312676s INFO prepare_target{force=false package_id=secmem-proc v0.3.7 target="secmem_proc"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/secmem-proc-ae7f5edb3c2803a0/lib-secmem_proc` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: ::compile + 8: cargo::ops::cargo_compile::compile_ws + 9: cargo::ops::cargo_compile::compile_with_exec + 10: cargo::ops::cargo_compile::compile + 11: cargo::commands::check::exec + 12: ::exec + 13: cargo::main + 14: std::sys::backtrace::__rust_begin_short_backtrace:: + 15: std::rt::lang_start::<()>::{closure#0} + 16: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 17: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 18: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 19: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 20: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 25: main + 26: __libc_start_call_main + 27: __libc_start_main_alias_2 + 28: + 0.499520801s INFO prepare_target{force=false package_id=rustix-linux-procfs v0.1.1 target="rustix_linux_procfs"}: cargo::core::compiler::fingerprint: fingerprint error for rustix-linux-procfs v0.1.1/Check { test: false }/TargetInner { ..: lib_target("rustix_linux_procfs", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustix-linux-procfs-0.1.1/src/lib.rs", Edition2021) } + 0.499526632s INFO prepare_target{force=false package_id=rustix-linux-procfs v0.1.1 target="rustix_linux_procfs"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/rustix-linux-procfs-ce6f901b128eef52/lib-rustix_linux_procfs` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.499656031s INFO prepare_target{force=false package_id=tracing-appender v0.2.3 target="tracing_appender"}: cargo::core::compiler::fingerprint: fingerprint error for tracing-appender v0.2.3/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("tracing_appender", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-appender-0.2.3/src/lib.rs", Edition2018) } + 0.499662053s INFO prepare_target{force=false package_id=tracing-appender v0.2.3 target="tracing_appender"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/tracing-appender-4dcdb0973cc6cf8b/lib-tracing_appender` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: ::compile + 8: cargo::ops::cargo_compile::compile_ws + 9: cargo::ops::cargo_compile::compile_with_exec + 10: cargo::ops::cargo_compile::compile + 11: cargo::commands::check::exec + 12: ::exec + 13: cargo::main + 14: std::sys::backtrace::__rust_begin_short_backtrace:: + 15: std::rt::lang_start::<()>::{closure#0} + 16: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 17: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 18: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 19: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 20: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 25: main + 26: __libc_start_call_main + 27: __libc_start_main_alias_2 + 28: + 0.499902498s INFO prepare_target{force=false package_id=flutter_rust_bridge v2.11.1 target="flutter_rust_bridge"}: cargo::core::compiler::fingerprint: fingerprint error for flutter_rust_bridge v2.11.1/Check { test: false }/TargetInner { ..: lib_target("flutter_rust_bridge", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flutter_rust_bridge-2.11.1/src/lib.rs", Edition2021) } + 0.499906836s INFO prepare_target{force=false package_id=flutter_rust_bridge v2.11.1 target="flutter_rust_bridge"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/flutter_rust_bridge-588ec00583450863/lib-flutter_rust_bridge` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: ::compile + 7: cargo::ops::cargo_compile::compile_ws + 8: cargo::ops::cargo_compile::compile_with_exec + 9: cargo::ops::cargo_compile::compile + 10: cargo::commands::check::exec + 11: ::exec + 12: cargo::main + 13: std::sys::backtrace::__rust_begin_short_backtrace:: + 14: std::rt::lang_start::<()>::{closure#0} + 15: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 16: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 17: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 18: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 19: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 20: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 21: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 22: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 23: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 24: main + 25: __libc_start_call_main + 26: __libc_start_main_alias_2 + 27: + 0.500262154s INFO prepare_target{force=false package_id=allo-isolate v0.1.27 target="allo_isolate"}: cargo::core::compiler::fingerprint: fingerprint error for allo-isolate v0.1.27/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("allo_isolate", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/allo-isolate-0.1.27/src/lib.rs", Edition2021) } + 0.500266742s INFO prepare_target{force=false package_id=allo-isolate v0.1.27 target="allo_isolate"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/allo-isolate-3fd07e81c73a2b29/lib-allo_isolate` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: ::compile + 8: cargo::ops::cargo_compile::compile_ws + 9: cargo::ops::cargo_compile::compile_with_exec + 10: cargo::ops::cargo_compile::compile + 11: cargo::commands::check::exec + 12: ::exec + 13: cargo::main + 14: std::sys::backtrace::__rust_begin_short_backtrace:: + 15: std::rt::lang_start::<()>::{closure#0} + 16: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 17: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 18: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 19: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 20: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 25: main + 26: __libc_start_call_main + 27: __libc_start_main_alias_2 + 28: + 0.500372148s INFO prepare_target{force=false package_id=backtrace v0.3.75 target="backtrace"}: cargo::core::compiler::fingerprint: fingerprint error for backtrace v0.3.75/Check { test: false }/TargetInner { ..: lib_target("backtrace", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/backtrace-0.3.75/src/lib.rs", Edition2021) } + 0.500375654s INFO prepare_target{force=false package_id=backtrace v0.3.75 target="backtrace"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/backtrace-3046d90ef1617adf/lib-backtrace` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.500547092s INFO prepare_target{force=false package_id=object v0.36.7 target="object"}: cargo::core::compiler::fingerprint: fingerprint error for object v0.36.7/Check { test: false }/TargetInner { ..: lib_target("object", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/object-0.36.7/src/lib.rs", Edition2018) } + 0.500550608s INFO prepare_target{force=false package_id=object v0.36.7 target="object"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/object-1a0f0ed18f8ce74c/lib-object` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.500692561s INFO prepare_target{force=false package_id=object v0.36.7 target="build-script-build"}: cargo::core::compiler::fingerprint: fingerprint error for object v0.36.7/RunCustomBuild/TargetInner { ..: custom_build_target("build-script-build", "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/object-0.36.7/build.rs", Edition2018) } + 0.500696518s INFO prepare_target{force=false package_id=object v0.36.7 target="build-script-build"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/object-cc48047827a31f8e/run-build-script-build-script-build` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::custom_build::build_work + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: cargo::core::compiler::compile + 10: cargo::core::compiler::compile + 11: ::compile + 12: cargo::ops::cargo_compile::compile_ws + 13: cargo::ops::cargo_compile::compile_with_exec + 14: cargo::ops::cargo_compile::compile + 15: cargo::commands::check::exec + 16: ::exec + 17: cargo::main + 18: std::sys::backtrace::__rust_begin_short_backtrace:: + 19: std::rt::lang_start::<()>::{closure#0} + 20: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 25: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 26: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 27: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 28: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 29: main + 30: __libc_start_call_main + 31: __libc_start_main_alias_2 + 32: + 0.500783569s INFO prepare_target{force=false package_id=dart-sys v4.1.5 target="dart_sys"}: cargo::core::compiler::fingerprint: fingerprint error for dart-sys v4.1.5/Check { test: false }/TargetInner { name_inferred: true, ..: lib_target("dart_sys", ["lib"], "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dart-sys-4.1.5/src/lib.rs", Edition2021) } + 0.500787006s INFO prepare_target{force=false package_id=dart-sys v4.1.5 target="dart_sys"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/dart-sys-1f422946721ba5b9/lib-dart_sys` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: ::compile + 8: cargo::ops::cargo_compile::compile_ws + 9: cargo::ops::cargo_compile::compile_with_exec + 10: cargo::ops::cargo_compile::compile + 11: cargo::commands::check::exec + 12: ::exec + 13: cargo::main + 14: std::sys::backtrace::__rust_begin_short_backtrace:: + 15: std::rt::lang_start::<()>::{closure#0} + 16: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 17: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 18: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 19: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 20: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 21: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 22: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 23: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 24: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 25: main + 26: __libc_start_call_main + 27: __libc_start_main_alias_2 + 28: + 0.500926334s INFO prepare_target{force=false package_id=dart-sys v4.1.5 target="build-script-build"}: cargo::core::compiler::fingerprint: fingerprint error for dart-sys v4.1.5/RunCustomBuild/TargetInner { ..: custom_build_target("build-script-build", "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dart-sys-4.1.5/build.rs", Edition2021) } + 0.500936302s INFO prepare_target{force=false package_id=dart-sys v4.1.5 target="build-script-build"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/dart-sys-c37be52d28d7c120/run-build-script-build-script-build` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::custom_build::build_work + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: cargo::core::compiler::compile + 9: ::compile + 10: cargo::ops::cargo_compile::compile_ws + 11: cargo::ops::cargo_compile::compile_with_exec + 12: cargo::ops::cargo_compile::compile + 13: cargo::commands::check::exec + 14: ::exec + 15: cargo::main + 16: std::sys::backtrace::__rust_begin_short_backtrace:: + 17: std::rt::lang_start::<()>::{closure#0} + 18: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 23: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 24: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 25: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 26: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 27: main + 28: __libc_start_call_main + 29: __libc_start_main_alias_2 + 30: + 0.501090207s INFO prepare_target{force=false package_id=flutter_rust_bridge v2.11.1 target="build-script-build"}: cargo::core::compiler::fingerprint: fingerprint error for flutter_rust_bridge v2.11.1/RunCustomBuild/TargetInner { ..: custom_build_target("build-script-build", "/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flutter_rust_bridge-2.11.1/build.rs", Edition2021) } + 0.501094024s INFO prepare_target{force=false package_id=flutter_rust_bridge v2.11.1 target="build-script-build"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/flutter_rust_bridge-b6d676b1359fb6df/run-build-script-build-script-build` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::custom_build::build_work + 5: cargo::core::compiler::compile + 6: cargo::core::compiler::compile + 7: cargo::core::compiler::compile + 8: ::compile + 9: cargo::ops::cargo_compile::compile_ws + 10: cargo::ops::cargo_compile::compile_with_exec + 11: cargo::ops::cargo_compile::compile + 12: cargo::commands::check::exec + 13: ::exec + 14: cargo::main + 15: std::sys::backtrace::__rust_begin_short_backtrace:: + 16: std::rt::lang_start::<()>::{closure#0} + 17: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 18: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 19: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 20: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 21: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 22: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 23: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 24: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 25: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 26: main + 27: __libc_start_call_main + 28: __libc_start_main_alias_2 + 29: + 0.501345320s INFO prepare_target{force=false package_id=rust_lib_tor v0.2.0 (/home/icota/Code/tor/rust) target="rust_lib_tor"}: cargo::core::compiler::fingerprint: fingerprint error for rust_lib_tor v0.2.0 (/home/icota/Code/tor/rust)/Check { test: true }/TargetInner { name_inferred: true, ..: lib_target("rust_lib_tor", ["cdylib", "staticlib", "rlib"], "/home/icota/Code/tor/rust/src/lib.rs", Edition2021) } + 0.501358895s INFO prepare_target{force=false package_id=rust_lib_tor v0.2.0 (/home/icota/Code/tor/rust) target="rust_lib_tor"}: cargo::core::compiler::fingerprint: err: failed to read `/home/icota/Code/tor/rust/target/debug/.fingerprint/rust_lib_tor-fe8878b6792e3a6b/test-lib-rust_lib_tor` + +Caused by: + No such file or directory (os error 2) + +Stack backtrace: + 0: cargo_util::paths::read_bytes + 1: cargo_util::paths::read + 2: cargo::core::compiler::fingerprint::_compare_old_fingerprint + 3: cargo::core::compiler::fingerprint::prepare_target + 4: cargo::core::compiler::compile + 5: ::compile + 6: cargo::ops::cargo_compile::compile_ws + 7: cargo::ops::cargo_compile::compile_with_exec + 8: cargo::ops::cargo_compile::compile + 9: cargo::commands::check::exec + 10: ::exec + 11: cargo::main + 12: std::sys::backtrace::__rust_begin_short_backtrace:: + 13: std::rt::lang_start::<()>::{closure#0} + 14: core::ops::function::impls:: for &F>::call_once + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13 + 15: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 16: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 17: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 18: std::rt::lang_start_internal::{{closure}} + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24 + 19: std::panicking::try::do_call + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40 + 20: std::panicking::try + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19 + 21: std::panic::catch_unwind + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14 + 22: std::rt::lang_start_internal + at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5 + 23: main + 24: __libc_start_call_main + 25: __libc_start_main_alias_2 + 26: + Compiling portable-atomic v1.11.1 +error: failed to run custom build command for `portable-atomic v1.11.1` +note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. + +Caused by: + process didn't exit successfully: `/home/icota/Code/tor/rust/target/debug/build/portable-atomic-2b0a155430aeaf9f/build-script-build` (exit status: 127) + --- stderr + /home/icota/Code/tor/rust/target/debug/build/portable-atomic-2b0a155430aeaf9f/build-script-build: symbol lookup error: /nix/store/daamdpmaz2vjvna55ccrc30qw3qb8h6d-glibc-2.40-66/lib/libc.so.6: undefined symbol: __nptl_change_stack_perm, version GLIBC_PRIVATE +warning: build failed, waiting for other jobs to finish... + Compiling object v0.36.7 + Compiling dart-sys v4.1.5 + Compiling flutter_rust_bridge v2.11.1 +error: failed to run custom build command for `object v0.36.7` +note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. + +Caused by: + process didn't exit successfully: `/home/icota/Code/tor/rust/target/debug/build/object-5cfb9b4238f78b53/build-script-build` (exit status: 127) + --- stderr + /home/icota/Code/tor/rust/target/debug/build/object-5cfb9b4238f78b53/build-script-build: symbol lookup error: /nix/store/daamdpmaz2vjvna55ccrc30qw3qb8h6d-glibc-2.40-66/lib/libc.so.6: undefined symbol: __nptl_change_stack_perm, version GLIBC_PRIVATE +error: failed to run custom build command for `dart-sys v4.1.5` +note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. + +Caused by: + process didn't exit successfully: `/home/icota/Code/tor/rust/target/debug/build/dart-sys-9f8efd17270748d6/build-script-build` (exit status: 127) + --- stderr + /home/icota/Code/tor/rust/target/debug/build/dart-sys-9f8efd17270748d6/build-script-build: symbol lookup error: /nix/store/daamdpmaz2vjvna55ccrc30qw3qb8h6d-glibc-2.40-66/lib/libc.so.6: undefined symbol: __nptl_change_stack_perm, version GLIBC_PRIVATE +error: failed to run custom build command for `flutter_rust_bridge v2.11.1` +note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. + +Caused by: + process didn't exit successfully: `/home/icota/Code/tor/rust/target/debug/build/flutter_rust_bridge-0575f5bfbcb58cb9/build-script-build` (exit status: 127) + --- stderr + /home/icota/Code/tor/rust/target/debug/build/flutter_rust_bridge-0575f5bfbcb58cb9/build-script-build: symbol lookup error: /nix/store/daamdpmaz2vjvna55ccrc30qw3qb8h6d-glibc-2.40-66/lib/libc.so.6: undefined symbol: __nptl_change_stack_perm, version GLIBC_PRIVATE diff --git a/rust/target/flycheck0/stdout b/rust/target/flycheck0/stdout new file mode 100644 index 00000000..7a2995a1 --- /dev/null +++ b/rust/target/flycheck0/stdout @@ -0,0 +1,505 @@ +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.95","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.95/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.95/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/proc-macro2-3c7cf2cb897bcc27/build-script-build"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.95","linked_libs":[],"linked_paths":[],"cfgs":["wrap_proc_macro"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/proc-macro2-4a38ad3b934ad3d5/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.18","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.18/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_ident","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-ident-1.0.18/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libunicode_ident-43c3b454bec3b76f.rlib","/home/icota/Code/tor/rust/target/debug/deps/libunicode_ident-43c3b454bec3b76f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/libc-14ce8c7234ef09f1/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cfg_if","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcfg_if-85a575aa1da689f5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#version_check@0.9.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"version_check","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/version_check-0.9.5/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libversion_check-284e8375b5dd3310.rlib","/home/icota/Code/tor/rust/target/debug/deps/libversion_check-284e8375b5dd3310.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#autocfg@1.4.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.4.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"autocfg","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/autocfg-1.4.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libautocfg-6353892153b58c07.rlib","/home/icota/Code/tor/rust/target/debug/deps/libautocfg-6353892153b58c07.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#typenum@1.18.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.18.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.18.0/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/typenum-3f2d1b9bcb6e5964/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#memchr@2.7.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.7.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"memchr","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memchr-2.7.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libmemchr-15e64b68e58c13ba.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#shlex@1.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"shlex","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shlex-1.3.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libshlex-4861f83f7cab96a7.rlib","/home/icota/Code/tor/rust/target/debug/deps/libshlex-4861f83f7cab96a7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.16","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project_lite","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.16/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpin_project_lite-b296577adde8dacc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","result","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/serde_core-4c5a2efdcb9b88fc/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#smallvec@1.15.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"smallvec","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["const_generics"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsmallvec-2c3a0df57c6edf3a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pkg-config@0.3.32","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkg-config-0.3.32/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pkg_config","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkg-config-0.3.32/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpkg_config-0734678050773e2d.rlib","/home/icota/Code/tor/rust/target/debug/deps/libpkg_config-0734678050773e2d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#portable-atomic@1.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/portable-atomic-1.11.1/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/portable-atomic-1.11.1/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","fallback"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/portable-atomic-2b0a155430aeaf9f/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","derive","serde_derive","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/serde-1b8df2ce800d8982/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-core@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-core-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_core-a847fdb58f6eb637.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.95","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.95/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc_macro2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro2-1.0.95/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libproc_macro2-7d83e77cb55998ce.rlib","/home/icota/Code/tor/rust/target/debug/deps/libproc_macro2-7d83e77cb55998ce.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","linked_libs":[],"linked_paths":[],"cfgs":["freebsd12"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/libc-e0f26a6088c4ccec/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#typenum@1.18.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/typenum-4d45f54f451f066b/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/build.rs","edition":"2015","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["more_lengths"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/generic-array-7238bf6cb8da8112/build-script-build"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/serde_core-481c2021b2c88b46/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","linked_libs":[],"linked_paths":[],"cfgs":["if_docsrs_then_no_serde_core"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/serde-0e3cf750a858b4c2/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slab@0.4.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.9/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.9/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/slab-0a25244afc201ec5/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/heck-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"heck","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/heck-0.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libheck-3954f288fb0dc085.rlib","/home/icota/Code/tor/rust/target/debug/deps/libheck-3954f288fb0dc085.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-io@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-io-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_io","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-io-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_io-2a88110933cbed90.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-sink@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_sink","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-sink-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_sink-82d13b6a2f5e1379.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#critical-section@1.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/critical-section-1.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"critical_section","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/critical-section-1.2.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcritical_section-029d7820b4abda38.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-task@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_task","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-task-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_task-a925c11b0dccd228.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@1.0.109","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","full","parsing","printing","proc-macro","quote"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/syn-4eacbe4e73befdfa/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-utils@0.1.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_utils","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-utils-0.1.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpin_utils-69cdeeb40344bc59.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.8.30","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.30/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.30/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive","simd","zerocopy-derive"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/zerocopy-6747be873455262e/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.40","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.40/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"quote","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/quote-1.0.40/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libquote-633ca24bad203381.rlib","/home/icota/Code/tor/rust/target/debug/deps/libquote-633ca24bad203381.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblibc-e50e940cd21ba48b.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7","linked_libs":[],"linked_paths":[],"cfgs":["relaxed_coherence"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/generic-array-6fe5ccf43a223c10/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.177","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.177/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblibc-23063657871e0199.rlib","/home/icota/Code/tor/rust/target/debug/deps/liblibc-23063657871e0199.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.228","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","result","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_core-9ac39e4c5b126773.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#slab@0.4.9","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/slab-ed6aa248cbe33efd/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#typenum@1.18.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.18.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"typenum","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.18.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtypenum-ce827d40c79426c0.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-channel@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_channel","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","futures-sink","sink","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_channel-2b3c41b814e45c39.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@1.0.109","linked_libs":[],"linked_paths":[],"cfgs":["syn_disable_nightly_tests"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/syn-192d25992949c215/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustversion@1.0.20","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustversion-1.0.20/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustversion-1.0.20/build/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/rustversion-2e231b8560969d2b/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#stable_deref_trait@1.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"stable_deref_trait","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/stable_deref_trait-1.2.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstable_deref_trait-d77a6de16a3b7df2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.12/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.12/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/thiserror-3fac9c4abc3784e2/build-script-build"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.8.30","linked_libs":[],"linked_paths":[],"cfgs":["no_zerocopy_simd_x86_avx12_1_89_0"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/zerocopy-0123509660948b79/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#typenum@1.18.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.18.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"typenum","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typenum-1.18.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtypenum-36121417a89e52e7.rlib","/home/icota/Code/tor/rust/target/debug/deps/libtypenum-36121417a89e52e7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bitflags@2.9.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.9.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bitflags","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitflags-2.9.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbitflags-272f7ab6e31dc958.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.101","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.101/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-2.0.101/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","fold","full","parsing","printing","proc-macro","visit","visit-mut"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsyn-4ea33a43bd8d0766.rlib","/home/icota/Code/tor/rust/target/debug/deps/libsyn-4ea33a43bd8d0766.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#jobserver@0.1.33","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.33/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"jobserver","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/jobserver-0.1.33/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libjobserver-fa08ff885717a505.rlib","/home/icota/Code/tor/rust/target/debug/deps/libjobserver-fa08ff885717a505.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slab@0.4.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slab","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slab-0.4.9/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libslab-7f492da43ddcdff2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"generic_array","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["more_lengths"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libgeneric_array-56521907b6e5ed75.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustversion@1.0.20","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/rustversion-68eefeaad6f25fee/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@1.0.109","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/syn-1.0.109/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","full","parsing","printing","proc-macro","quote"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsyn-2a0205b3e9242cd3.rlib","/home/icota/Code/tor/rust/target/debug/deps/libsyn-2a0205b3e9242cd3.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.12","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/thiserror-5b11aeac9290e839/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#generic-array@0.14.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"generic_array","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/generic-array-0.14.7/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["more_lengths"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libgeneric_array-b97577d381b8574d.rlib","/home/icota/Code/tor/rust/target/debug/deps/libgeneric_array-b97577d381b8574d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-utils@0.8.21","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-utils-0.8.21/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-utils-0.8.21/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/crossbeam-utils-c3397dca9f69b6ca/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#const-oid@0.9.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/const-oid-0.9.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"const_oid","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/const-oid-0.9.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libconst_oid-4edb93e6ed0818cb.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#log@0.4.27","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.27/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"log","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/log-0.4.27/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblog-92e021db849161f2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libm@0.2.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libm-0.2.15/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libm-0.2.15/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["arch","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/libm-558b2c7892286a8c/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#vcpkg@0.2.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/vcpkg-0.2.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"vcpkg","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/vcpkg-0.2.15/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libvcpkg-ec038215c0a44778.rlib","/home/icota/Code/tor/rust/target/debug/deps/libvcpkg-ec038215c0a44778.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.12/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.12/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["atomic_usize","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/lock_api-073210f575f81381/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","i128","libm","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/num-traits-6bac37581f940223/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cc@1.2.23","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.23/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cc","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cc-1.2.23/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["parallel"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcc-3f31a138e5ab3b03.rlib","/home/icota/Code/tor/rust/target/debug/deps/libcc-3f31a138e5ab3b03.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#synstructure@0.13.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"synstructure","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/synstructure-0.13.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsynstructure-8a6079bd9d18653a.rlib","/home/icota/Code/tor/rust/target/debug/deps/libsynstructure-8a6079bd9d18653a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.228","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"serde_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_derive-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_derive-6f2f2a41ae7d7969.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-macro@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-macro-0.3.31/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"futures_macro","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-macro-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_macro-249787e3c0b17380.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#displaydoc@0.2.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/displaydoc-0.2.5/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"displaydoc","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/displaydoc-0.2.5/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdisplaydoc-327a1de77c524101.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror-impl@2.0.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-impl-2.0.12/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"thiserror_impl","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-impl-2.0.12/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libthiserror_impl-a345e89ac2bb9284.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy-derive@0.8.30","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-derive-0.8.30/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zerocopy_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-derive-0.8.30/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerocopy_derive-5633dfa89986d5e2.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerovec-derive@0.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zerovec_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-derive-0.11.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerovec_derive-d36cee02277b81e0.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustversion@1.0.20","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustversion-1.0.20/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"rustversion","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustversion-1.0.20/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librustversion-4df248a110058f9c.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crypto_common","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrypto_common-acb2da4837de2487.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-utils@0.8.21","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/crossbeam-utils-106649d456fca23f/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"block_buffer","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libblock_buffer-71c904633538b4f5.rlib","/home/icota/Code/tor/rust/target/debug/deps/libblock_buffer-71c904633538b4f5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crypto-common@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crypto_common","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crypto-common-0.1.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrypto_common-610cf5230036f74f.rlib","/home/icota/Code/tor/rust/target/debug/deps/libcrypto_common-610cf5230036f74f.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libm@0.2.15","linked_libs":[],"linked_paths":[],"cfgs":["arch_enabled"],"env":[["CFG_CARGO_FEATURES","[\"arch\", \"default\"]"],["CFG_OPT_LEVEL","0"],["CFG_TARGET_FEATURES","[\"fxsr\", \"sse\", \"sse2\"]"]],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/libm-41d3a72f79cd900d/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"equivalent","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libequivalent-4350c621bf0e5173.rlib","/home/icota/Code/tor/rust/target/debug/deps/libequivalent-4350c621bf0e5173.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.228","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","derive","serde_derive","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde-20d4e261c96b855c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerofrom-derive@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zerofrom_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-derive-0.1.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerofrom_derive-e5a3cee8fae4aff3.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#yoke-derive@0.8.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"yoke_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-derive-0.8.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libyoke_derive-4d88d0c99397bf0c.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-util@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_util","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","async-await","async-await-macro","channel","default","futures-channel","futures-io","futures-macro","futures-sink","io","memchr","sink","slab","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_util-b9a97cba828e20be.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.12/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"thiserror","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-2.0.12/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libthiserror-14900fd994ecb493.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.8.30","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.30/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerocopy","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerocopy-0.8.30/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive","simd","zerocopy-derive"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerocopy-c4a0b37a9ec66a60.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#strum_macros@0.27.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strum_macros-0.27.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"strum_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strum_macros-0.27.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstrum_macros-229458dcb98d1309.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-utils@0.8.21","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-utils-0.8.21/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crossbeam_utils","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-utils-0.8.21/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrossbeam_utils-e9e890ad8563fcb3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.16.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhashbrown-68ed40743c45d952.rlib","/home/icota/Code/tor/rust/target/debug/deps/libhashbrown-68ed40743c45d952.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#semver@1.0.26","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/semver-4b1710b36cf8070a/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex-syntax@0.8.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-syntax-0.8.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex_syntax","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-syntax-0.8.5/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std","unicode-case"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libregex_syntax-2b3c40dee0234275.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.10/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.10/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/parking_lot_core-d1ae0bf3a0ce36be/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libm@0.2.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libm-0.2.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libm","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libm-0.2.15/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["arch","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblibm-927419d33af5bdc2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"digest","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","block-buffer","core-api","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdigest-18605744cf0fe456.rlib","/home/icota/Code/tor/rust/target/debug/deps/libdigest-18605744cf0fe456.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","linked_libs":[],"linked_paths":[],"cfgs":["has_total_cmp"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/num-traits-4e95e276fef67fd6/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerofrom@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-0.1.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerofrom","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerofrom-0.1.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","derive"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerofrom-5376ab780eee262f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-executor@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-executor-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_executor","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-executor-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures_executor-869f82d5729afa55.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex-automata@0.4.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex_automata","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.9/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","dfa-build","dfa-search","meta","nfa-pikevm","nfa-thompson","std","syntax","unicode-case"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libregex_automata-a9052bde31985c02.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#semver@1.0.26","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/semver-bd6f9be6cc9d47bf/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.12.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.12.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"indexmap","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.12.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libindexmap-d566f20aa12a2ba6.rlib","/home/icota/Code/tor/rust/target/debug/deps/libindexmap-d566f20aa12a2ba6.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.10","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/parking_lot_core-7bae69a33df63e20/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zeroize_derive@1.4.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize_derive-1.4.2/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zeroize_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize_derive-1.4.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzeroize_derive-b9790fa7a42d1468.so"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.12","linked_libs":[],"linked_paths":[],"cfgs":["has_const_fn_trait_bound"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/lock_api-d9e3a0572309c35f/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fnv@1.0.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fnv","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfnv-30604f3ddfdf1948.rlib","/home/icota/Code/tor/rust/target/debug/deps/libfnv-30604f3ddfdf1948.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#winnow@0.7.13","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winnow-0.7.13/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"winnow","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winnow-0.7.13/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libwinnow-e563d74e393f7b79.rlib","/home/icota/Code/tor/rust/target/debug/deps/libwinnow-e563d74e393f7b79.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_datetime@0.6.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_datetime-0.6.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_datetime","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_datetime-0.6.9/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_datetime-2db95a7365706802.rlib","/home/icota/Code/tor/rust/target/debug/deps/libtoml_datetime-2db95a7365706802.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ident_case@1.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ident_case-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ident_case","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ident_case-1.0.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libident_case-a638840d0ec16955.rlib","/home/icota/Code/tor/rust/target/debug/deps/libident_case-a638840d0ec16955.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#scopeguard@1.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"scopeguard","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","use_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libscopeguard-e740b67ce00789b1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_traits","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","i128","libm","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_traits-e663babf5758d398.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#block-buffer@0.10.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"block_buffer","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/block-buffer-0.10.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libblock_buffer-70d0d586a03c0a5a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#yoke@0.8.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-0.8.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"yoke","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/yoke-0.8.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","derive","zerofrom"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libyoke-551b8f00e90ff9ac.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zeroize@1.8.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zeroize","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zeroize-1.8.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","derive","zeroize_derive"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzeroize-0ba112c0c35b915c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#semver@1.0.26","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"semver","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/semver-1.0.26/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsemver-8d5e57cdab6f4da8.rlib","/home/icota/Code/tor/rust/target/debug/deps/libsemver-8d5e57cdab6f4da8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"parking_lot_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot_core-0.9.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libparking_lot_core-bca2796fc9c8cb1a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_edit@0.22.26","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_edit-0.22.26/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_edit","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_edit-0.22.26/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["parse"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_edit-8c74011a6e4dee76.rlib","/home/icota/Code/tor/rust/target/debug/deps/libtoml_edit-8c74011a6e4dee76.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures@0.3.31","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-0.3.31/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-0.3.31/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","async-await","default","executor","futures-executor","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfutures-e34280e59254e1f0.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.12/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lock_api","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.12/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["atomic_usize","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblock_api-0fa1b3f2dc5c828e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","i128","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/num-traits-fa55b52c4d6b14a8/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#litemap@0.8.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"litemap","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/litemap-0.8.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblitemap-78f15299ed305eef.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#paste@1.0.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/paste-1.0.15/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/paste-1.0.15/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/paste-01b75d5a21ce86db/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#writeable@0.6.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"writeable","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/writeable-0.6.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libwriteable-572b8f2ea8a752c1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-segmentation@1.12.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-segmentation-1.12.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_segmentation","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-segmentation-1.12.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libunicode_segmentation-458f1d7171d0a48f.rlib","/home/icota/Code/tor/rust/target/debug/deps/libunicode_segmentation-458f1d7171d0a48f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#subtle@2.6.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"subtle","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/subtle-2.6.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","i128","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsubtle-b4d3aedf2bfb4076.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.69","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/thiserror-f638de53c40baad3/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl-src@300.5.0+3.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-src-300.5.0+3.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"openssl_src","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-src-300.5.0+3.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","legacy"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libopenssl_src-c9e6da895895fe36.rlib","/home/icota/Code/tor/rust/target/debug/deps/libopenssl_src-c9e6da895895fe36.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerovec@0.11.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-0.11.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerovec","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerovec-0.11.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","derive","yoke"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerovec-7b46f35483ff22da.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro-crate@3.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-crate-3.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc_macro_crate","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-crate-3.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libproc_macro_crate-381ecfb693f00df5.rlib","/home/icota/Code/tor/rust/target/debug/deps/libproc_macro_crate-381ecfb693f00df5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"parking_lot","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking_lot-0.12.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libparking_lot-4dea6b7836ba511f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerotrie@0.2.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerotrie-0.2.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerotrie","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zerotrie-0.2.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["yoke","zerofrom"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzerotrie-6e6c70ce6e6d8b0a.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","linked_libs":[],"linked_paths":[],"cfgs":["has_total_cmp"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/num-traits-d14cd04042e5323b/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#convert_case@0.7.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/convert_case-0.7.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"convert_case","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/convert_case-0.7.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libconvert_case-5080ae89be1a8740.rlib","/home/icota/Code/tor/rust/target/debug/deps/libconvert_case-5080ae89be1a8740.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#digest@0.10.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"digest","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/digest-0.10.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","block-buffer","const-oid","core-api","default","mac","oid","std","subtle"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdigest-8b538f83f6aeca7c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustc_version@0.4.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustc_version-0.4.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustc_version","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustc_version-0.4.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librustc_version-f3737f77c713af4d.rlib","/home/icota/Code/tor/rust/target/debug/deps/librustc_version-f3737f77c713af4d.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.69","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/thiserror-79eb749ab69be37b/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#paste@1.0.15","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/paste-8333b208e6932c89/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing-attributes@0.1.28","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-attributes-0.1.28/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tracing_attributes","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-attributes-0.1.28/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtracing_attributes-324a982e84cecb51.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror-impl@1.0.69","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-impl-1.0.69/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"thiserror_impl","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-impl-1.0.69/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libthiserror_impl-757683c81f8c74f4.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties_data@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/icu_properties_data-4e0919396423e458/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer_data@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/icu_normalizer_data-0145d142140ecad1/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-xid@0.2.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-xid-0.2.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_xid","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-xid-0.2.6/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libunicode_xid-bcbe4c1cb1ec1ff3.rlib","/home/icota/Code/tor/rust/target/debug/deps/libunicode_xid-bcbe4c1cb1ec1ff3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinystr@0.8.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinystr-0.8.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinystr","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinystr-0.8.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","zerovec"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtinystr-c9f47ed3902d5430.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#potential_utf@0.1.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/potential_utf-0.1.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"potential_utf","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/potential_utf-0.1.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zerovec"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpotential_utf-d4527081650935a3.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties_data@2.0.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/icu_properties_data-cde38cc569caebd8/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer_data@2.0.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/icu_normalizer_data-08ff3817af21aa48/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.69","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"thiserror","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thiserror-1.0.69/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libthiserror-916a46922b9462b3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive_more-impl@2.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_more-impl-2.0.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"derive_more_impl","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_more-impl-2.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["add","add_assign","as_ref","constructor","debug","default","deref","deref_mut","display","error","from","from_str","index","index_mut","into","into_iterator","is_variant","mul","mul_assign","not","sum","try_from","try_into","try_unwrap","unwrap"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_more_impl-3203e578464b2e8b.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_traits","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-traits-0.2.19/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","i128","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_traits-c66c9366cdb7ddb6.rlib","/home/icota/Code/tor/rust/target/debug/deps/libnum_traits-c66c9366cdb7ddb6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#paste@1.0.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/paste-1.0.15/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"paste","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/paste-1.0.15/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpaste-c57ce5246224f6bc.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.108","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-sys-0.9.108/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-main","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-sys-0.9.108/build/main.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["openssl-src","vendored"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/openssl-sys-d7ac545435375457/build-script-main"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ppv-lite86@0.2.21","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ppv_lite86","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ppv-lite86-0.2.21/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["simd","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libppv_lite86-61d90b63d6f0472d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#either@1.15.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/either-1.15.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"either","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/either-1.15.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std","use_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libeither-816569754fe24ac3.rlib","/home/icota/Code/tor/rust/target/debug/deps/libeither-816569754fe24ac3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#keccak@0.1.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/keccak-0.1.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"keccak","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/keccak-0.1.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libkeccak-17df3c24504c1c29.rlib","/home/icota/Code/tor/rust/target/debug/deps/libkeccak-17df3c24504c1c29.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#either@1.15.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/either-1.15.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"either","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/either-1.15.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std","use_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libeither-6c7cbdb7bb0eaa96.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bytes@1.10.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bytes","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbytes-d261e87c992433a1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#strum@0.27.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strum-0.27.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"strum","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strum-0.27.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","derive","std","strum_macros"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstrum-b414509c71b26d4e.rlib","/home/icota/Code/tor/rust/target/debug/deps/libstrum-b414509c71b26d4e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_locale_core@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_locale_core-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_locale_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_locale_core-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zerovec"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_locale_core-963ca33e6178f620.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_collections@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_collections-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_collections","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_collections-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_collections-ff1b5f490b02e649.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sha3@0.10.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha3-0.10.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sha3","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha3-0.10.8/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsha3-502293c92d8a0c7c.rlib","/home/icota/Code/tor/rust/target/debug/deps/libsha3-502293c92d8a0c7c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itertools@0.14.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itertools","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","use_alloc","use_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libitertools-7864367772bf5da0.rlib","/home/icota/Code/tor/rust/target/debug/deps/libitertools-7864367772bf5da0.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive_more@2.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_more-2.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"derive_more","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_more-2.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["add","add_assign","as_ref","constructor","debug","default","deref","deref_mut","display","error","from","from_str","full","index","index_mut","into","into_iterator","is_variant","mul","mul_assign","not","std","sum","try_from","try_into","try_unwrap","unwrap"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_more-713d0589efddf7df.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.108","linked_libs":["static=ssl","static=crypto"],"linked_paths":["native=/home/icota/Code/tor/rust/target/debug/build/openssl-sys-46390b295d341792/out/openssl-build/install/lib"],"cfgs":["osslconf=\"OPENSSL_NO_IDEA\"","osslconf=\"OPENSSL_NO_CAMELLIA\"","osslconf=\"OPENSSL_NO_COMP\"","osslconf=\"OPENSSL_NO_SSL3_METHOD\"","osslconf=\"OPENSSL_NO_SEED\"","openssl","ossl340","ossl330","ossl320","ossl300","ossl101","ossl102","ossl102f","ossl102h","ossl110","ossl110f","ossl110g","ossl110h","ossl111","ossl111b","ossl111c","ossl111d"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/openssl-sys-46390b295d341792/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer_data@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_normalizer_data","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer_data-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_normalizer_data-81b0a8a868621cb6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-integer@0.1.46","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-integer-0.1.46/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_integer","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-integer-0.1.46/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["i128","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_integer-7356fcc29826257c.rlib","/home/icota/Code/tor/rust/target/debug/deps/libnum_integer-7356fcc29826257c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties_data@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_properties_data","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties_data-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_properties_data-3d021f52da00cfa5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#mio@1.0.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mio-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"mio","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/mio-1.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","log","net","os-ext","os-poll"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libmio-ce3e0577eb8f2334.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.2.16","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.16/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"getrandom","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.2.16/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libgetrandom-10e6eb129f26bf8f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#void@1.0.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/void-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"void","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/void-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libvoid-28063eb20f024da7.rlib","/home/icota/Code/tor/rust/target/debug/deps/libvoid-28063eb20f024da7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.3.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.3/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.3/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/getrandom-eb57a55d46330e1b/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#void@1.0.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/void-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"void","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/void-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libvoid-64758f609bd9da37.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-internal@1.1.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-internal-1.1.10/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"pin_project_internal","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-internal-1.1.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpin_project_internal-817eed1ec657f1a9.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_provider@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_provider-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_provider","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_provider-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["baked","zerotrie"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_provider-3ed64e8a7cbe8eef.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-bigint@0.4.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-0.4.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_bigint","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-0.4.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_bigint-60ef1f99b15b848c.rlib","/home/icota/Code/tor/rust/target/debug/deps/libnum_bigint-60ef1f99b15b848c.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.3.3","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/getrandom-d476a05c36fc7f64/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand_core@0.6.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","getrandom","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand_core-0739ef62d10d0160.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-macros@2.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-macros-2.5.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tokio_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-macros-2.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtokio_macros-ec32d85f88630f05.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#signal-hook-registry@1.4.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signal-hook-registry-1.4.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"signal_hook_registry","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signal-hook-registry-1.4.5/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsignal_hook_registry-5fdea89e2e14f994.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#socket2@0.5.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.5.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"socket2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/socket2-0.5.9/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["all"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsocket2-07b30b09b6fca222.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#strsim@0.10.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.10.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"strsim","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.10.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstrsim-403b4305b1a36925.rlib","/home/icota/Code/tor/rust/target/debug/deps/libstrsim-403b4305b1a36925.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#static_assertions@1.1.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/static_assertions-1.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"static_assertions","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/static_assertions-1.1.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstatic_assertions-c5089ebede074cc9.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project@1.1.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-1.1.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-1.1.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpin_project-5514133542048278.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#option-ext@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/option-ext-0.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"option_ext","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/option-ext-0.2.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liboption_ext-a21d94aed06487d8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cpufeatures@0.2.17","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cpufeatures","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpufeatures-0.2.17/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcpufeatures-4f5c40bff569a77f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.72","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.72/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.72/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","vendored"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/openssl-417bea698e687680/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#spin@0.9.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/spin-0.9.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"spin","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/spin-0.9.8/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["once"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libspin-a976ce5acd8d8011.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/heck-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"heck","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/heck-0.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libheck-e2202133f1257fef.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_normalizer","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_normalizer-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compiled_data"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_normalizer-3ef864726e8f262f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_properties","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/icu_properties-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compiled_data"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libicu_properties-26d73223fbd09742.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#enum-ordinalize@3.1.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enum-ordinalize-3.1.15/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"enum_ordinalize","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enum-ordinalize-3.1.15/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libenum_ordinalize-ac0fc6306f795f9b.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#darling_core@0.14.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_core-0.14.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"darling_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_core-0.14.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["strsim","suggestions"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdarling_core-46244c05b0d7161b.rlib","/home/icota/Code/tor/rust/target/debug/deps/libdarling_core-46244c05b0d7161b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio@1.45.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytes","default","fs","full","io-std","io-util","libc","macros","mio","net","parking_lot","process","rt","rt-multi-thread","signal","signal-hook-registry","socket2","sync","time","tokio-macros"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtokio-630c707776e8e0d6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.3.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"getrandom","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getrandom-0.3.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libgetrandom-d08d56d1a08c633c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#foreign-types-shared@0.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foreign-types-shared-0.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"foreign_types_shared","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foreign-types-shared-0.1.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libforeign_types_shared-60aeb149030af16c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#utf8_iter@1.0.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"utf8_iter","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8_iter-1.0.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libutf8_iter-1361be05275ab7c4.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#percent-encoding@2.3.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"percent_encoding","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/percent-encoding-2.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpercent_encoding-9bc4a0de5087f173.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#dirs-sys@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dirs-sys-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"dirs_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dirs-sys-0.5.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdirs_sys-b0c5ae33058b5dfc.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl@0.10.72","linked_libs":[],"linked_paths":[],"cfgs":["osslconf=\"OPENSSL_NO_IDEA\"","osslconf=\"OPENSSL_NO_CAMELLIA\"","osslconf=\"OPENSSL_NO_COMP\"","osslconf=\"OPENSSL_NO_SSL3_METHOD\"","osslconf=\"OPENSSL_NO_SEED\"","ossl101","ossl102","ossl110","ossl110g","ossl110h","ossl111","ossl111d","ossl300","ossl310","ossl320","ossl330"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/openssl-a979779fcdc6f52b/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lazy_static@1.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lazy_static-1.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lazy_static","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lazy_static-1.5.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["spin","spin_no_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblazy_static-2561b154f42b05b2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl-sys@0.9.108","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-sys-0.9.108/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"openssl_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-sys-0.9.108/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["openssl-src","vendored"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libopenssl_sys-bf66a8e65125484a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#strum@0.27.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strum-0.27.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"strum","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strum-0.27.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","derive","std","strum_macros"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstrum-bda71d5f97039c42.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl-macros@0.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-macros-0.1.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"openssl_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-macros-0.1.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libopenssl_macros-bf572a48468bd07d.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#idna_adapter@1.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/idna_adapter-1.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"idna_adapter","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/idna_adapter-1.2.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compiled_data"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libidna_adapter-7470e7030d4b533a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#educe@0.4.23","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/educe-0.4.23/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"educe","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/educe-0.4.23/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["Clone","Copy","Debug","Default","Deref","DerefMut","Eq","Hash","Ord","PartialEq","PartialOrd","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libeduce-dd76bdc722f183c6.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand_core@0.9.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["os_rng","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand_core-6d8991827e7e3f8e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#foreign-types@0.3.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foreign-types-0.3.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"foreign_types","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foreign-types-0.3.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libforeign_types-b646e5c1a539284a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#form_urlencoded@1.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/form_urlencoded-1.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"form_urlencoded","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/form_urlencoded-1.2.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libform_urlencoded-d7647cccd44c5896.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#darling_macro@0.14.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_macro-0.14.4/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"darling_macro","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_macro-0.14.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdarling_macro-25da6db346ae6c6a.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"equivalent","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/equivalent-1.0.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libequivalent-9353e17de93bf1d1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#retry-error@0.9.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/retry-error-0.9.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"retry_error","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/retry-error-0.9.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libretry_error-85ae2614e83bfc26.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.16.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.16.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhashbrown-ae07f1c1922d7a7d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly-macros@0.14.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-0.14.6/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-0.14.6/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["case","expect","heck","meta-as-expr","meta-as-items","sha3"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/derive-deftly-macros-342cd52d27939c17/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly-macros@1.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-1.3.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-1.3.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["beta","case","expect","heck","meta-as-expr","meta-as-items","sha3"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/derive-deftly-macros-a860a0c810e018b9/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#base64ct@1.8.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64ct-1.8.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"base64ct","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64ct-1.8.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbase64ct-1613281bb14f0341.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#native-tls@0.2.14","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/native-tls-0.2.14/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/native-tls-0.2.14/build.rs","edition":"2015","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alpn","vendored"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/native-tls-a568a03dd27a015e/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#same-file@1.0.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/same-file-1.0.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"same_file","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/same-file-1.0.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsame_file-bea6384f86a455a0.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async_executors@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async_executors-0.7.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async_executors-0.7.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["tokio","tokio_io","tokio_timer","tokio_tp"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/async_executors-8c72914d4e2e81d4/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#idna@1.0.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/idna-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"idna","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/idna-1.0.3/src/lib.rs","edition":"2018","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","compiled_data","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libidna-3054ef1e8c92e478.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly-macros@1.3.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/derive-deftly-macros-13892ca6fcde6e92/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#walkdir@2.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walkdir-2.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"walkdir","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walkdir-2.5.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libwalkdir-552a905f6af06717.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.12.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.12.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"indexmap","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/indexmap-2.12.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libindexmap-b8f9651107c89cb3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pem-rfc7468@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pem-rfc7468-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pem_rfc7468","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pem-rfc7468-0.7.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpem_rfc7468-5f62e671140637dc.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly-macros@0.14.6","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/derive-deftly-macros-2be5fae3e24f4d0e/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#darling@0.14.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling-0.14.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"darling","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling-0.14.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","suggestions"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdarling-d16268920b983b45.rlib","/home/icota/Code/tor/rust/target/debug/deps/libdarling-d16268920b983b45.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#native-tls@0.2.14","linked_libs":[],"linked_paths":[],"cfgs":["have_min_max_version"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/native-tls-5f0fe201b04aa76a/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#atomic@0.5.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-0.5.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"atomic","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic-0.5.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","fallback"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libatomic-db823dbcb9c1160a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#openssl-probe@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-probe-0.1.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"openssl_probe","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-probe-0.1.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libopenssl_probe-b9ee60272eff5412.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hex@0.4.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hex","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhex-51ebb7a11e1972f2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#winnow@0.7.13","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winnow-0.7.13/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"winnow","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winnow-0.7.13/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libwinnow-4bad5ee611f5301c.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#async_executors@0.7.0","linked_libs":[],"linked_paths":[],"cfgs":["stable"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/async_executors-efe8016d7fa1b34c/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand_chacha@0.9.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.9.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_chacha","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.9.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand_chacha-fd691c8a5d674268.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#dirs@6.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dirs-6.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"dirs","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dirs-6.0.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdirs-a8f78ba3842e8fab.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tor-general-addr@0.36.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-general-addr-0.36.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tor_general_addr","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-general-addr-0.36.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtor_general_addr-7cb2d241e15f0c78.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#url@2.5.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/url-2.5.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"url","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/url-2.5.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liburl-1782bec6220bd106.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly-macros@0.14.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-0.14.6/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"derive_deftly_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-0.14.6/macros.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["case","expect","heck","meta-as-expr","meta-as-items","sha3"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_deftly_macros-52df2f72d389b0c2.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive_builder_core_fork_arti@0.11.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_builder_core_fork_arti-0.11.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"derive_builder_core_fork_arti","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_builder_core_fork_arti-0.11.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_builder_core_fork_arti-dd88d9123edfa0da.rlib","/home/icota/Code/tor/rust/target/debug/deps/libderive_builder_core_fork_arti-dd88d9123edfa0da.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly-macros@1.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-1.3.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"derive_deftly_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-macros-1.3.0/macros.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["beta","case","expect","heck","meta-as-expr","meta-as-items","sha3"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_deftly_macros-7740069983649b37.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#regex@1.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-1.11.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"regex","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-1.11.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std","unicode-case"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libregex-31a5f1aa55ef9fb4.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async-trait@0.1.88","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-trait-0.1.88/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"async_trait","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-trait-0.1.88/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasync_trait-bc6da78e1cb51601.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#blanket@0.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/blanket-0.3.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"blanket","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/blanket-0.3.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libblanket-ec2d503bc07ef6af.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand@0.9.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.9.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","os_rng","small_rng","std","std_rng","thread_rng"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand-c645bc6078885655.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-util@0.7.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_util","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-util-0.7.15/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compat","default","futures-io"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtokio_util-732b4e7af2533c16.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#asynchronous-codec@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asynchronous-codec-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"asynchronous_codec","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asynchronous-codec-0.7.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasynchronous_codec-afe29f92948b689e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itertools@0.14.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itertools","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.14.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","use_alloc","use_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libitertools-bd34f186effc6f2c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-queue@0.3.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crossbeam_queue","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrossbeam_queue-b92c597811bcffd5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_spanned@0.6.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_spanned-0.6.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_spanned","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_spanned-0.6.8/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["serde"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_spanned-47b0db1a50894710.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_datetime@0.6.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_datetime-0.6.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_datetime","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_datetime-0.6.9/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["serde"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_datetime-bc74f3fd2534dbb7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#amplify_syn@2.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify_syn-2.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"amplify_syn","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify_syn-2.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libamplify_syn-1ffac07148d37021.rlib","/home/icota/Code/tor/rust/target/debug/deps/libamplify_syn-1ffac07148d37021.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#coarsetime@0.1.36","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/coarsetime-0.1.36/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"coarsetime","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/coarsetime-0.1.36/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcoarsetime-4187f0a5914c1e10.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async_executors@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async_executors-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"async_executors","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async_executors-0.7.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["tokio","tokio_io","tokio_timer","tokio_tp"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasync_executors-f7713f6d08ab53d4.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly@0.14.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-0.14.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"derive_deftly","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-0.14.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["case","default","expect","full","full-msrv-1.56","heck","meta-as-expr","meta-as-items","minimal-1"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_deftly-0392a3d563f47d1e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive-deftly@1.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-1.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"derive_deftly","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive-deftly-1.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["beta","case","default","expect","full","full-msrv-1.56","heck","meta-as-expr","meta-as-items","minimal-1"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_deftly-9430b0c290ee4b77.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive_builder_macro_fork_arti@0.11.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_builder_macro_fork_arti-0.11.2/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"derive_builder_macro_fork_arti","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_builder_macro_fork_arti-0.11.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_builder_macro_fork_arti-bf0b5cc9dec982ab.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#uncased@0.9.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/uncased-0.9.10/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/uncased-0.9.10/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/uncased-5fba8255695b082d/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap@1.0.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slotmap-1.0.7/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slotmap-1.0.7/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","serde","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/slotmap-18d4ca54a4d052b8/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_write@0.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_write-0.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_write","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_write-0.1.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_write-984be6fd926d7c5b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#dyn-clone@1.0.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dyn-clone-1.0.19/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"dyn_clone","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dyn-clone-1.0.19/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdyn_clone-2367dbd090628584.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#byteorder@1.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/byteorder-1.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"byteorder","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/byteorder-1.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbyteorder-236d0e5d12c0a0b2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#postage@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/postage-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"postage","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/postage-0.5.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["futures","futures-traits"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpostage-cce327abdf619118.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#amplify_derive@4.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify_derive-4.0.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"amplify_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify_derive-4.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libamplify_derive-9ea28bb228d65eae.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#der@0.7.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/der-0.7.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"der","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/der-0.7.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","oid","pem","std","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libder-0604be8f683800c3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sha2@0.10.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sha2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha2-0.10.9/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","oid","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsha2-7db498f28d84bdd6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#oneshot-fused-workaround@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/oneshot-fused-workaround-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"oneshot_fused_workaround","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/oneshot-fused-workaround-0.5.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liboneshot_fused_workaround-07b97a9af750d6fc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#inout@0.1.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inout-0.1.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"inout","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inout-0.1.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libinout-54e23417f7aac2a6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#inotify-sys@0.1.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inotify-sys-0.1.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"inotify_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inotify-sys-0.1.5/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libinotify_sys-b2f2d80853b1e3f1.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap@1.0.7","linked_libs":[],"linked_paths":[],"cfgs":["has_min_const_generics"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/slotmap-0f3ed56163c41474/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#uncased@0.9.10","linked_libs":[],"linked_paths":[],"cfgs":["const_fn_transmute"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/uncased-29f5ae9ae98c5523/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pwd-grp@1.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pwd-grp-1.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pwd_grp","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pwd-grp-1.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","minimal-1"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpwd_grp-f218f1738d536aab.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#derive_builder_fork_arti@0.11.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_builder_fork_arti-0.11.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"derive_builder_fork_arti","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/derive_builder_fork_arti-0.11.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderive_builder_fork_arti-551cc80a65bf024e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_edit@0.22.26","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_edit-0.22.26/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_edit","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_edit-0.22.26/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["display","parse","serde"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_edit-1c0f7a17a9b7b3ad.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#filetime@0.2.25","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/filetime-0.2.25/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"filetime","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/filetime-0.2.25/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfiletime-f31295144e8d9907.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#figment@0.10.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/figment-0.10.19/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/figment-0.10.19/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["toml"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/figment-1edb9f5833fbc45d/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#humantime@2.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-2.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"humantime","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-2.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhumantime-d2b8c7a18983476d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ascii@1.1.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ascii-1.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ascii","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ascii-1.1.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libascii-b8bd18980d22c433.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#amplify_num@0.5.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify_num-0.5.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"amplify_num","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify_num-0.5.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","hex"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libamplify_num-0050cec0ecac1351.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cipher@0.4.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cipher-0.4.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cipher","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cipher-0.4.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcipher-5bf6944c593a86d1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#spki@0.7.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/spki-0.7.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"spki","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/spki-0.7.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","pem","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libspki-3cd6ad7ca52bc2df.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#inotify@0.11.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inotify-0.11.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"inotify","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inotify-0.11.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libinotify-8d57f3215ad3b7e6.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tor-basic-utils@0.36.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-basic-utils-0.36.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tor_basic_utils","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-basic-utils-0.36.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["serde"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtor_basic_utils-ec98baaa92e76ec2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_parser@1.0.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_parser-1.0.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_parser","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_parser-1.0.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_parser-fb139c6c949a8797.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#signature@2.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signature-2.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"signature","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/signature-2.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","digest","rand_core","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsignature-47a3ac947117cb1d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fs-mistrust@0.13.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fs-mistrust-0.13.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fs_mistrust","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fs-mistrust-0.13.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["anon_home","default","dirs","serde","walkdir"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfs_mistrust-b84a87a8379d7918.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#uncased@0.9.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/uncased-0.9.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"uncased","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/uncased-0.9.10/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libuncased-57788964a734fc79.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml@0.8.22","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml-0.8.22/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml-0.8.22/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","display","parse"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml-46a917cd3a3ad224.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap@1.0.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slotmap-1.0.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slotmap","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slotmap-1.0.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","serde","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libslotmap-d93f56456188a5eb.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#amplify@4.8.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify-4.8.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"amplify","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/amplify-4.8.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["amplify_derive","derive"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libamplify-45919e32f58b63b6.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#figment@0.10.19","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/figment-3ff9e0d2dc500d3d/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand_chacha@0.3.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_chacha","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_chacha-0.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand_chacha-aa30a22645e63009.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#curve25519-dalek@4.1.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/curve25519-dalek-4.1.3/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/curve25519-dalek-4.1.3/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","digest","precomputed-tables","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/curve25519-dalek-1c32402e49c71f06/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-integer@0.1.46","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-integer-0.1.46/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_integer","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-integer-0.1.46/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["i128"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_integer-65d98de35a3a00b0.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ordered-float@2.10.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ordered-float-2.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ordered_float","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ordered-float-2.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libordered_float-dfaa6cce19204f47.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_datetime@0.7.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_datetime-0.7.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_datetime","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_datetime-0.7.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","serde","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_datetime-a34d6e09529f6c8b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_spanned@1.0.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_spanned-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_spanned","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_spanned-1.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","serde","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_spanned-014b3a88ae3cca3c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-bigint-dig@0.8.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["i128","prime","rand","u64_digit","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/num-bigint-dig-c198ef4caf404711/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#notify-types@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/notify-types-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"notify_types","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/notify-types-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnotify_types-4b7fbac0602966ef.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#minimal-lexical@0.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/minimal-lexical-0.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"minimal_lexical","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/minimal-lexical-0.2.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libminimal_lexical-e137268b628692c2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml_writer@1.0.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_writer-1.0.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml_writer","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml_writer-1.0.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml_writer-678c7f2ba87bfad7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde-value@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-value-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_value","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde-value-0.7.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_value-5c0a6b6693fcf678.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#notify@8.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/notify-8.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"notify","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/notify-8.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["kqueue","macos_kqueue","mio"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnotify-b58a098717bdd158.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#nom@7.1.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nom-7.1.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"nom","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nom-7.1.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnom-d61caf5e86d8972b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#figment@0.10.19","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/figment-0.10.19/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"figment","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/figment-0.10.19/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["toml"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfigment-e0d9a8247a0a2285.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-bigint-dig@0.8.4","linked_libs":[],"linked_paths":[],"cfgs":["has_i128"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/num-bigint-dig-256e240be9a8f0b1/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-iter@0.1.45","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-iter-0.1.45/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_iter","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-iter-0.1.45/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_iter-2e01f94e133751ab.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand@0.8.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand-0.8.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["rand_chacha","std_rng"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand-6e4cc9a84f88366f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap-careful@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slotmap-careful-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slotmap_careful","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slotmap-careful-0.5.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libslotmap_careful-279a67588a9d9a19.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#curve25519-dalek@4.1.3","linked_libs":[],"linked_paths":[],"cfgs":["curve25519_dalek_bits=\"64\"","curve25519_dalek_backend=\"simd\""],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/curve25519-dalek-8feb594bbec47e45/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#toml@0.9.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml-0.9.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"toml","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/toml-0.9.8/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","display","parse","serde","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtoml-b4e1a987edcf647b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pkcs8@0.10.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkcs8-0.10.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pkcs8","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkcs8-0.10.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","pem","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpkcs8-1c67f1bbbe57ba5a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tor-async-utils@0.36.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-async-utils-0.36.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tor_async_utils","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tor-async-utils-0.36.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtor_async_utils-7aa0c834018aef4d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_ignored@0.1.12","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_ignored-0.1.12/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_ignored","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_ignored-0.1.12/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_ignored-20510d7a18de9944.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#curve25519-dalek-derive@0.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/curve25519-dalek-derive-0.1.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"curve25519_dalek_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/curve25519-dalek-derive-0.1.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcurve25519_dalek_derive-7cc3778d9ebbfb04.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#keccak@0.1.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/keccak-0.1.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"keccak","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/keccak-0.1.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libkeccak-cf31bd9d13cf1aa8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#weak-table@0.3.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/weak-table-0.3.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"weak_table","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/weak-table-0.3.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libweak_table-047b9b6fc5cebf1c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rusticata-macros@4.1.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rusticata-macros-4.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rusticata_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rusticata-macros-4.1.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librusticata_macros-93ce8f2faddf4a3c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-bigint-dig@0.8.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_bigint_dig","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["i128","prime","rand","u64_digit","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_bigint_dig-2417807df00defd7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pkcs1@0.7.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkcs1-0.7.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pkcs1","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pkcs1-0.7.5/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","pem","pkcs8","std","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpkcs1-ecc1237dad8d4986.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#curve25519-dalek@4.1.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/curve25519-dalek-4.1.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"curve25519_dalek","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/curve25519-dalek-4.1.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","digest","precomputed-tables","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcurve25519_dalek-1c94fe9abb7b2646.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#asn1-rs-derive@0.6.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asn1-rs-derive-0.6.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"asn1_rs_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asn1-rs-derive-0.6.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasn1_rs_derive-041cf035f76e2f9f.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#asn1-rs-impl@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asn1-rs-impl-0.2.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"asn1_rs_impl","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asn1-rs-impl-0.2.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasn1_rs_impl-e7b548300fafe158.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sysinfo@0.36.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sysinfo-0.36.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sysinfo","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sysinfo-0.36.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["objc2-io-kit","system"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsysinfo-d12a5267b33be57c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#merlin@3.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/merlin-3.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"merlin","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/merlin-3.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libmerlin-02d4919f4961406b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ed25519@2.2.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-2.2.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ed25519","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-2.2.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libed25519-3b7aabbb225c48be.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cookie-factory@0.3.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cookie-factory-0.3.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cookie_factory","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cookie-factory-0.3.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["async","default","futures","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcookie_factory-277dc9581ff809f4.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fluid-let@1.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fluid-let-1.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fluid_let","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fluid-let-1.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfluid_let-c1d09c88459c9f9b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sha3@0.10.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha3-0.10.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sha3","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha3-0.10.8/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsha3-dc090e83fa52d342.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#aes@0.8.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aes-0.8.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"aes","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/aes-0.8.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libaes-e090a00d8d10b133.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ctr@0.9.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ctr-0.9.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ctr","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ctr-0.9.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libctr-34b9c11c1dcb39a2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rand_jitter@0.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_jitter-0.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rand_jitter","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rand_jitter-0.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librand_jitter-4ded70ac2d427aeb.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rdrand@0.8.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rdrand-0.8.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rdrand","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rdrand-0.8.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librdrand-61751aa6d9fb4a60.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rsa@0.9.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rsa-0.9.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rsa","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rsa-0.9.8/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","pem","sha2","std","u64_digit"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librsa-98018b34c7a197b5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#asn1-rs@0.7.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asn1-rs-0.7.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"asn1_rs","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/asn1-rs-0.7.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasn1_rs-7b4b393cec2d8ebc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ed25519-dalek@2.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-dalek-2.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ed25519_dalek","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ed25519-dalek-2.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","batch","default","fast","hazmat","merlin","rand_core","std","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libed25519_dalek-8af66278192f143e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#x25519-dalek@2.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/x25519-dalek-2.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"x25519_dalek","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/x25519-dalek-2.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","precomputed-tables","static_secrets","zeroize"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libx25519_dalek-501400ee26cc87fc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#safelog@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/safelog-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"safelog","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/safelog-0.7.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsafelog-3c052685c75a1133.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sha1@0.10.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha1-0.10.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sha1","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sha1-0.10.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsha1-7c8087f26fd6bddd.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#visibility@0.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/visibility-0.1.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"visibility","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/visibility-0.1.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libvisibility-5e0ddbad83da4982.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itoa","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itoa-1.0.15/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libitoa-a758da6bb242ffe7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#caret@0.8.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/caret-0.8.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"caret","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/caret-0.8.0/src/lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcaret-c6846fbe35ffe664.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#strsim@0.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"strsim","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstrsim-a204a0f2a97bb049.rlib","/home/icota/Code/tor/rust/target/debug/deps/libstrsim-a204a0f2a97bb049.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ssh-encoding@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ssh-encoding-0.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ssh_encoding","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ssh-encoding-0.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","base64","pem","sha2","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libssh_encoding-98f015d0bf88b58d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-conv@0.1.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_conv","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.1.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_conv-fafcbe6eeace8a5c.rlib","/home/icota/Code/tor/rust/target/debug/deps/libnum_conv-fafcbe6eeace8a5c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#time-core@0.1.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"time_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtime_core-dc8c7c668549bb62.rlib","/home/icota/Code/tor/rust/target/debug/deps/libtime_core-dc8c7c668549bb62.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#powerfmt@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"powerfmt","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/powerfmt-0.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpowerfmt-0c50e7c0b735343e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#base16ct@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base16ct-0.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"base16ct","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base16ct-0.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbase16ct-b28d4fbf01edc678.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-conv@0.1.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.1.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_conv","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-conv-0.1.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_conv-d0e8333c40e8674c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#der-parser@10.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/der-parser-10.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"der_parser","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/der-parser-10.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["cookie-factory","default","serialize","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libder_parser-7335fdf1e7790d99.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#darling_core@0.20.11","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_core-0.20.11/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"darling_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_core-0.20.11/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["strsim","suggestions"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdarling_core-d554dc33068d6520.rlib","/home/icota/Code/tor/rust/target/debug/deps/libdarling_core-d554dc33068d6520.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#deranged@0.4.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.4.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"deranged","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/deranged-0.4.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","powerfmt","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libderanged-2e3708cab86b1761.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sec1@0.7.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sec1-0.7.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sec1","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sec1-0.7.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","point","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsec1-a58be3856e012985.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#time-macros@0.2.22","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.22/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"time_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-macros-0.2.22/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["formatting","parsing"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtime_macros-aabedc2753b08df9.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ssh-cipher@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ssh-cipher-0.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ssh_cipher","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ssh-cipher-0.2.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libssh_cipher-473967cc1d7bf4db.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#time-core@0.1.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"time_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-core-0.1.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtime_core-ff2e34c3b1220eab.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#downcast-rs@2.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/downcast-rs-2.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"downcast_rs","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/downcast-rs-2.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std","sync"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdowncast_rs-3b388efe91e9f064.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#data-encoding@2.9.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/data-encoding-2.9.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"data_encoding","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/data-encoding-2.9.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdata_encoding-56192c237afee0fd.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustix@1.0.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustix-1.0.7/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustix-1.0.7/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","fs","process","std","termios"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/rustix-8c63967346e53853/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#linux-raw-sys@0.9.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/linux-raw-sys-0.9.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"linux_raw_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/linux-raw-sys-0.9.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["elf","errno","general","ioctl","no_std","prctl"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblinux_raw_sys-403a0c5eae8210fa.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.140","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/serde_json-4c5ba5cc83b1d733/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#siphasher@1.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"siphasher","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsiphasher-607a63c0fcd9b880.rlib","/home/icota/Code/tor/rust/target/debug/deps/libsiphasher-607a63c0fcd9b880.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ryu@1.0.20","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.20/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ryu","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ryu-1.0.20/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libryu-5e7ad4c3d5c3fc55.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#utf8parse@0.2.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8parse-0.2.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"utf8parse","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/utf8parse-0.2.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libutf8parse-e548a970c2487923.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fastrand@2.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fastrand-2.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fastrand","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fastrand-2.3.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfastrand-3a514ee641e750d7.rlib","/home/icota/Code/tor/rust/target/debug/deps/libfastrand-3a514ee641e750d7.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#darling_macro@0.20.11","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_macro-0.20.11/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"darling_macro","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling_macro-0.20.11/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdarling_macro-9c44491c680439cf.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ssh-key@0.6.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ssh-key-0.6.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ssh_key","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ssh-key-0.6.7/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","ecdsa","rand_core","rsa","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libssh_key-1a94f258d0be1ab5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#time@0.3.41","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.41/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"time","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.41/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","formatting","macros","parsing","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtime-f1e549449cd0b4d5.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustix@1.0.7","linked_libs":[],"linked_paths":[],"cfgs":["static_assertions","linux_raw","linux_like","linux_kernel"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/rustix-3232448cf8d79de9/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.140","linked_libs":[],"linked_paths":[],"cfgs":["fast_arithmetic=\"64\""],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/serde_json-11f9cb071c1f613a/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#phf_shared@0.13.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.13.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"phf_shared","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.13.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libphf_shared-2c5249eb39d095bb.rlib","/home/icota/Code/tor/rust/target/debug/deps/libphf_shared-2c5249eb39d095bb.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#by_address@1.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/by_address-1.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"by_address","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/by_address-1.2.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libby_address-b1824eca7d6c8e52.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anstyle-parse@0.2.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstyle-parse-0.2.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"anstyle_parse","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstyle-parse-0.2.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","utf8"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libanstyle_parse-27dafa488aeffb9b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-epoch@0.9.18","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-epoch-0.9.18/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crossbeam_epoch","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-epoch-0.9.18/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrossbeam_epoch-f2252230525449ab.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anstyle@1.0.10","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstyle-1.0.10/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"anstyle","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstyle-1.0.10/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libanstyle-c6c6510a62e8a680.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#siphasher@1.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"siphasher","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/siphasher-1.0.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsiphasher-dd1c0a5c5f09215d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#colorchoice@1.0.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/colorchoice-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"colorchoice","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/colorchoice-1.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcolorchoice-d8166e855bef8415.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#is_terminal_polyfill@1.70.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/is_terminal_polyfill-1.70.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"is_terminal_polyfill","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/is_terminal_polyfill-1.70.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libis_terminal_polyfill-52622ebe41bbb7f9.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rayon-core@1.13.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.13.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.13.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/rayon-core-727621960ba4e3e0/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anstyle-query@1.1.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstyle-query-1.1.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"anstyle_query","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstyle-query-1.1.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libanstyle_query-5dcda123ebb6ab7e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sharded-slab@0.1.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sharded-slab-0.1.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sharded_slab","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sharded-slab-0.1.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsharded_slab-f8a8b16a257f4492.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#darling@0.20.11","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling-0.20.11/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"darling","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/darling-0.20.11/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","suggestions"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdarling-cdfc21e7e834521d.rlib","/home/icota/Code/tor/rust/target/debug/deps/libdarling-cdfc21e7e834521d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustix@1.0.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustix-1.0.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustix","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustix-1.0.7/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","fs","process","std","termios"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librustix-45f7dad009709ad4.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.140","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_json","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.140/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_json-05bc81866f386662.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#phf_generator@0.13.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_generator-0.13.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"phf_generator","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_generator-0.13.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libphf_generator-02ed6e59bf7b681a.rlib","/home/icota/Code/tor/rust/target/debug/deps/libphf_generator-02ed6e59bf7b681a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#phf_shared@0.13.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.13.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"phf_shared","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_shared-0.13.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libphf_shared-c0c8a277d736a422.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anstream@0.6.18","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstream-0.6.18/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"anstream","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anstream-0.6.18/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["auto","default","wincon"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libanstream-da2841776a7ef22b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-deque@0.8.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-deque-0.8.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crossbeam_deque","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-deque-0.8.6/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrossbeam_deque-f6290836c3364f84.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#rayon-core@1.13.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/rayon-core-85f27c027c0f41a6/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#matchers@0.2.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/matchers-0.2.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"matchers","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/matchers-0.2.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libmatchers-1771a2db27f871c1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bstr@1.12.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bstr-1.12.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bstr","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bstr-1.12.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std","unicode"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbstr-e74d783e361d2388.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#half@2.7.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/half-2.7.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"half","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/half-2.7.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhalf-6c5453b3303b267c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#os_str_bytes@6.6.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/os_str_bytes-6.6.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"os_str_bytes","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/os_str_bytes-6.6.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","memchr","raw_os_str"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libos_str_bytes-a2b1bdbd5818ea41.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ciborium-io@0.2.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ciborium-io-0.2.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ciborium_io","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ciborium-io-0.2.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libciborium_io-06919ce1b3ba1f35.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#nu-ansi-term@0.50.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nu-ansi-term-0.50.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"nu_ansi_term","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nu-ansi-term-0.50.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnu_ansi_term-fab9cc786b734e4b.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#plotters-backend@0.3.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/plotters-backend-0.3.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"plotters_backend","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/plotters-backend-0.3.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libplotters_backend-95849e434ad0dbba.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#clap_lex@0.7.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap_lex-0.7.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"clap_lex","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap_lex-0.7.4/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libclap_lex-2c453c8dc9c6db11.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_with_macros@3.12.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_with_macros-3.12.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"serde_with_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_with_macros-3.12.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_with_macros-70b7064d9a751002.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#phf_macros@0.13.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_macros-0.13.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"phf_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf_macros-0.13.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libphf_macros-efa9cabacb04ebd0.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#terminal_size@0.4.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/terminal_size-0.4.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"terminal_size","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/terminal_size-0.4.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libterminal_size-0e2380179d108b78.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#strsim@0.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"strsim","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/strsim-0.11.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libstrsim-3a0fba9c9072fe87.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#shellexpand@3.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shellexpand-3.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"shellexpand","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/shellexpand-3.1.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["base-0","bstr","default","dirs","os_str_bytes","path","tilde"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libshellexpand-5774bace5b501fb1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ciborium-ll@0.2.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ciborium-ll-0.2.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ciborium_ll","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ciborium-ll-0.2.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libciborium_ll-3a663cac9b5f9ee3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rayon-core@1.13.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.13.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rayon_core","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-core-1.13.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librayon_core-2af58b18260d7fc1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#plotters-svg@0.3.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/plotters-svg-0.3.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"plotters_svg","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/plotters-svg-0.3.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libplotters_svg-9783f4dbaca20d49.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sanitize-filename@0.6.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sanitize-filename-0.6.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sanitize_filename","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sanitize-filename-0.6.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsanitize_filename-2d016c1853dae4bf.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#directories@6.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/directories-6.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"directories","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/directories-6.0.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdirectories-04bd4bb50f3829b2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itertools@0.13.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.13.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itertools","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.13.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","use_alloc","use_std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libitertools-9d3f49a1350ec9e8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#clap_derive@4.5.32","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap_derive-4.5.32/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"clap_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap_derive-4.5.32/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libclap_derive-b0e1cd4c5279ee07.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fslock@0.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fslock-0.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fslock","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fslock-0.2.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfslock-cc590c4318d4612c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#radium@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/radium-0.7.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/radium-0.7.0/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/radium-bb44dce6754f7b20/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cast@0.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cast-0.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cast","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cast-0.3.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcast-2ab25c246494ed2a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinytemplate@1.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinytemplate-1.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinytemplate","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinytemplate-1.2.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtinytemplate-d0a7dacac48d99b5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_with@3.12.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_with-3.12.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_with","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/serde_with-3.12.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","macros","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libserde_with-fa1ffe1cd006e7ac.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#phf@0.13.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf-0.13.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"phf","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/phf-0.13.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","macros","phf_macros","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libphf-0943785144bc7901.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#clap_builder@4.5.38","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap_builder-4.5.38/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"clap_builder","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap_builder-4.5.38/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["color","error-context","help","std","string","suggestions","usage","wrap_help"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libclap_builder-32554cc8e3ecbaab.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rayon@1.11.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.11.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rayon","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rayon-1.11.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librayon-10309b2b02e8be1d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ciborium@0.2.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ciborium-0.2.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ciborium","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ciborium-0.2.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libciborium-f4e7c9668e4162ec.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#plotters@0.3.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/plotters-0.3.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"plotters","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/plotters-0.3.7/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["area_series","line_series","plotters-svg","svg_backend"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libplotters-a1f4c8245aea8e03.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#radium@0.7.0","linked_libs":[],"linked_paths":[],"cfgs":["radium_atomic_8","radium_atomic_16","radium_atomic_32","radium_atomic_64","radium_atomic_ptr"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/radium-59d62b9283d18b11/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#criterion-plot@0.6.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-plot-0.6.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"criterion_plot","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-plot-0.6.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcriterion_plot-174ae71ed69f6270.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num_enum_derive@0.7.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num_enum_derive-0.7.3/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"num_enum_derive","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num_enum_derive-0.7.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["proc-macro-crate","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_enum_derive-d8bb265dc28a166d.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing-test-macro@0.2.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-test-macro-0.2.5/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tracing_test_macro","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-test-macro-0.2.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtracing_test_macro-0e0e3b0c5eba38f5.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#glob-match@0.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/glob-match-0.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"glob_match","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/glob-match-0.2.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libglob_match-b16f0b5aedd0cf57.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tap@1.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tap-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tap","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tap-1.0.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtap-50417562d495847e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#arrayvec@0.7.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/arrayvec-0.7.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"arrayvec","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/arrayvec-0.7.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libarrayvec-dd120dba9438d8ce.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#inventory@0.3.20","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inventory-0.3.20/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"inventory","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/inventory-0.3.20/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libinventory-241f34ddccd9c639.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anes@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anes-0.1.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"anes","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anes-0.1.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libanes-62011b8fe1d6679f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#oorandom@11.1.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/oorandom-11.1.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"oorandom","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/oorandom-11.1.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liboorandom-275809e064d2b293.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#clap@4.5.38","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap-4.5.38/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"clap","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/clap-4.5.38/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["color","default","derive","error-context","help","std","string","suggestions","usage","wrap_help"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libclap-f91b6a3993e2edd2.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wyz@0.5.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wyz-0.5.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"wyz","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wyz-0.5.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libwyz-31f680e3f291b6c8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#radium@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/radium-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"radium","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/radium-0.7.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libradium-37fa66ba08440a6c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num_enum@0.7.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num_enum-0.7.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_enum","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num_enum-0.7.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_enum-d7028279b3037267.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#priority-queue@2.3.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/priority-queue-2.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"priority_queue","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/priority-queue-2.3.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libpriority_queue-2d2a25bfcec14842.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hmac@0.12.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hmac-0.12.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hmac","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hmac-0.12.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhmac-8bba3e32b1e92dd4.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd-sys@2.0.15+zstd.1.5.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-sys-2.0.15+zstd.1.5.7/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-sys-2.0.15+zstd.1.5.7/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/zstd-sys-94e291ba5fbed261/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#funty@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/funty-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"funty","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/funty-2.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfunty-0179f11be86911ff.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"once_cell","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/once_cell-1.21.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","race","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libonce_cell-fdbcf25800230925.rlib","/home/icota/Code/tor/rust/target/debug/deps/libonce_cell-fdbcf25800230925.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#assert_matches@1.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/assert_matches-1.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"assert_matches","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/assert_matches-1.5.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libassert_matches-8e73961528580724.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#adler2@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/adler2-2.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"adler2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/adler2-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libadler2-82b5f80ba7256d4e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#typed-index-collections@3.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typed-index-collections-3.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"typed_index_collections","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/typed-index-collections-3.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtyped_index_collections-7a516a301e7256c0.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro-error-attr2@2.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-error-attr2-2.0.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"proc_macro_error_attr2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-error-attr2-2.0.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libproc_macro_error_attr2-9481c76f76e1bb0b.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#nonany@0.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nonany-0.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"nonany","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/nonany-0.3.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnonany-853bb8be20d168fc.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sync_wrapper@1.0.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sync_wrapper-1.0.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sync_wrapper","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sync_wrapper-1.0.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libsync_wrapper-17c8830fb22ab457.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#liblzma-sys@0.4.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/liblzma-sys-0.4.3/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/liblzma-sys-0.4.3/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bindgen"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/liblzma-sys-978ddc271771001f/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#criterion@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"criterion","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-0.7.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["cargo_bench_support","default","plotters","rayon"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcriterion-edf54d07f42e1fa8.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#miniz_oxide@0.8.8","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/miniz_oxide-0.8.8/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"miniz_oxide","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/miniz_oxide-0.8.8/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["with-alloc"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libminiz_oxide-8a061273b30ec5e1.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bitvec@1.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitvec-1.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bitvec","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitvec-1.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","atomic","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbitvec-b4868f8a950daa28.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd-sys@2.0.15+zstd.1.5.7","linked_libs":["static=zstd"],"linked_paths":["native=/home/icota/Code/tor/rust/target/debug/build/zstd-sys-846846e5e50b8c00/out"],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/zstd-sys-846846e5e50b8c00/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hkdf@0.12.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hkdf-0.12.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hkdf","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hkdf-0.12.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhkdf-3c47ace87c4b37c3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#enum_dispatch@0.3.13","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enum_dispatch-0.3.13/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"enum_dispatch","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enum_dispatch-0.3.13/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libenum_dispatch-426c707485ee8c24.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro-error2@2.0.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-error2-2.0.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc_macro_error2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/proc-macro-error2-2.0.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","syn-error"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libproc_macro_error2-3ed9338870033a24.rlib","/home/icota/Code/tor/rust/target/debug/deps/libproc_macro_error2-3ed9338870033a24.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd-safe@7.2.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-safe-7.2.4/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-safe-7.2.4/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/zstd-safe-4513b89eef4916ee/build-script-build"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#liblzma-sys@0.4.3","linked_libs":["lzma"],"linked_paths":["native=/nix/store/mqi9i9hx29gpsv24jqr11208yn4jfqkk-xz-5.8.1/lib"],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/liblzma-sys-7cfed3bc87512107/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#humantime-serde@1.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-serde-1.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"humantime_serde","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/humantime-serde-1.1.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhumantime_serde-afdcd3ac7039c9c5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crc32fast@1.4.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.4.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crc32fast","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crc32fast-1.4.2/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrc32fast-b16ab32c9228fc89.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/httparse-4946286d97390771/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anyhow@1.0.98","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/anyhow-b09df1c3f95a9615/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libsqlite3-sys@0.35.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libsqlite3-sys-0.35.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libsqlite3-sys-0.35.0/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bundled","bundled_bindings","cc","default","min_sqlite_version_3_14_0","pkg-config","vcpkg"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/libsqlite3-sys-8ae58631ebaad5de/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fnv@1.0.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fnv","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fnv-1.0.7/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfnv-ca590f8d5cc48bbb.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#foldhash@0.1.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.1.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"foldhash","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/foldhash-0.1.5/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfoldhash-627d3151ef8bb299.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#criterion-cycles-per-byte@0.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-cycles-per-byte-0.7.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"criterion_cycles_per_byte","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/criterion-cycles-per-byte-0.7.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcriterion_cycles_per_byte-4fb004c8e830703c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getset@0.1.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getset-0.1.6/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"getset","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/getset-0.1.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libgetset-1cb60d337ef717ff.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd-sys@2.0.15+zstd.1.5.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-sys-2.0.15+zstd.1.5.7/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zstd_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-sys-2.0.15+zstd.1.5.7/src/lib.rs","edition":"2018","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzstd_sys-cbf9b97e2b20ac45.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd-safe@7.2.4","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/zstd-safe-c6085a33ac6e82c4/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#liblzma-sys@0.4.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/liblzma-sys-0.4.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"liblzma_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/liblzma-sys-0.4.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bindgen"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libliblzma_sys-e28da2228343cb9c.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","linked_libs":[],"linked_paths":[],"cfgs":["httparse_simd_neon_intrinsics","httparse_simd"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/httparse-1a83168a6c944ebf/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#flate2@1.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flate2-1.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"flate2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flate2-1.1.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["any_impl","default","miniz_oxide","rust_backend"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libflate2-ab423c2f6188ad35.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#anyhow@1.0.98","linked_libs":[],"linked_paths":[],"cfgs":["std_backtrace"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/anyhow-4e84cbd01cc733b2/out"} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libsqlite3-sys@0.35.0","linked_libs":["static=sqlite3"],"linked_paths":["native=/home/icota/Code/tor/rust/target/debug/build/libsqlite3-sys-fab42bd95d2b7043/out"],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/libsqlite3-sys-fab42bd95d2b7043/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http@1.3.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-1.3.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhttp-d6abd1d7511f96cb.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.15.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default-hasher","inline-more"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhashbrown-2994fd2b7eb5732f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httpdate@1.0.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httpdate-1.0.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httpdate","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httpdate-1.0.3/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhttpdate-1593459802d7d9e9.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#object@0.36.7","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/object-0.36.7/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/object-0.36.7/build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["archive","coff","elf","macho","pe","read_core","unaligned","xcoff"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/object-5cfb9b4238f78b53/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#concurrent-queue@2.5.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/concurrent-queue-2.5.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"concurrent_queue","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/concurrent-queue-2.5.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libconcurrent_queue-e9b5fbc7bbff5e63.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fallible-streaming-iterator@0.1.9","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fallible-streaming-iterator-0.1.9/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fallible_streaming_iterator","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fallible-streaming-iterator-0.1.9/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfallible_streaming_iterator-cb06128b367643ce.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gimli@0.31.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gimli-0.31.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gimli","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gimli-0.31.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["read","read-core"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libgimli-3c278b4734cf4461.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd-safe@7.2.4","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-safe-7.2.4/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zstd_safe","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-safe-7.2.4/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzstd_safe-69a16f3b17cd1e00.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#liblzma@0.4.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/liblzma-0.4.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"liblzma","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/liblzma-0.4.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bindgen","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libliblzma-6d852914907ef84f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#anyhow@1.0.98","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"anyhow","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libanyhow-45efe45985e6a877.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httparse","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/httparse-1.10.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhttparse-43603e9bd9319f34.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashlink@0.10.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashlink-0.10.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashlink","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashlink-0.10.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhashlink-89bdc13de0d12381.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libsqlite3-sys@0.35.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libsqlite3-sys-0.35.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libsqlite3_sys","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/libsqlite3-sys-0.35.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bundled","bundled_bindings","cc","default","min_sqlite_version_3_14_0","pkg-config","vcpkg"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/liblibsqlite3_sys-eded3876f6e15592.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fallible-iterator@0.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fallible-iterator-0.3.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fallible_iterator","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/fallible-iterator-0.3.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libfallible_iterator-fa4e142c8f58ec44.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking@2.2.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking-2.2.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"parking","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/parking-2.2.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libparking-f1c048c4e01e570d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#addr2line@0.24.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/addr2line-0.24.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"addr2line","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/addr2line-0.24.2/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libaddr2line-40a021e48191e54f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#dart-sys@4.1.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dart-sys-4.1.5/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/dart-sys-4.1.5/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/dart-sys-9f8efd17270748d6/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#memmap2@0.9.5","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memmap2-0.9.5/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"memmap2","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/memmap2-0.9.5/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libmemmap2-32de33d2255e61ad.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinyvec_macros@0.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinyvec_macros-0.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinyvec_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinyvec_macros-0.1.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtinyvec_macros-053200e4506fba1e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rlimit@0.10.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rlimit-0.10.2/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rlimit-0.10.2/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/build/rlimit-d29e71323146a625/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustc-demangle@0.1.24","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustc-demangle-0.1.24/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustc_demangle","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rustc-demangle-0.1.24/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librustc_demangle-833272b18d87309a.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#build-target@0.4.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/build-target-0.4.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"build_target","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/build-target-0.4.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libbuild_target-080ac825724db175.rlib","/home/icota/Code/tor/rust/target/debug/deps/libbuild_target-080ac825724db175.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zstd@0.13.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-0.13.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zstd","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/zstd-0.13.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libzstd-39141301d1787a1c.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#event-listener@5.4.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/event-listener-5.4.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"event_listener","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/event-listener-5.4.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","parking","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libevent_listener-0a6535f6ada226af.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rusqlite@0.37.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rusqlite-0.37.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rusqlite","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rusqlite-0.37.0/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bundled","modern_sqlite","time"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librusqlite-c37905971851084e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cfg_if","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cfg-if-1.0.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcfg_if-c3000707eb2e20cd.rlib","/home/icota/Code/tor/rust/target/debug/deps/libcfg_if-c3000707eb2e20cd.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#flutter_rust_bridge@2.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flutter_rust_bridge-2.11.1/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flutter_rust_bridge-2.11.1/build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["anyhow","console_error_panic_hook","dart-opaque","default","log","portable-atomic","rust-async","thread-pool","user-utils","wasm-start"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/flutter_rust_bridge-0575f5bfbcb58cb9/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinyvec@1.9.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinyvec-1.9.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinyvec","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tinyvec-1.9.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","tinyvec_macros"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libtinyvec-034dac7d63c5584d.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#rlimit@0.10.2","linked_libs":[],"linked_paths":[],"cfgs":["rlimit__has_prlimit64"],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/rlimit-f54b8da33c8aa533/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#crossbeam-channel@0.5.15","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"crossbeam_channel","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-channel-0.5.15/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libcrossbeam_channel-e27158ac20ec1f7f.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#enum-as-inner@0.6.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enum-as-inner-0.6.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"enum_as_inner","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/enum-as-inner-0.6.1/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libenum_as_inner-178f3a315b97e7b6.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num_cpus@1.17.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num_cpus-1.17.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_cpus","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num_cpus-1.17.0/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libnum_cpus-226d900601b15928.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ipnet@2.11.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ipnet-2.11.0/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ipnet","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ipnet-2.11.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libipnet-e6a79e73b5faa00d.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hostname-validator@1.1.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hostname-validator-1.1.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hostname_validator","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hostname-validator-1.1.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhostname_validator-9d11f59611d6730e.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#arti@1.7.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/arti-1.7.0/Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/arti-1.7.0/build.rs","edition":"2024","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["__is_experimental","__is_nonadditive","bridge-client","compression","default","default-runtime","dns-proxy","experimental-api","harden","hickory-proto","native-tls","onion-service-client","pt-client","secmem-proc","static","tokio","tokio-crate","tokio-util","vanguards","visibility"],"filenames":["/home/icota/Code/tor/rust/target/debug/build/arti-bb3db7d043baac75/build-script-build"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hex@0.4.3","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hex","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hex-0.4.3/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libhex-bbad38ddeb657675.rlib","/home/icota/Code/tor/rust/target/debug/deps/libhex-bbad38ddeb657675.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#async-compression@0.4.23","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-compression-0.4.23/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"async_compression","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-compression-0.4.23/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["flate2","futures-io","libzstd","lzma","xz","zlib","zstd","zstd-safe"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libasync_compression-d87ab386c8ba93f3.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#md-5@0.10.6","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/md-5-0.10.6/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"md5","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/md-5-0.10.6/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libmd5-9dac1f56f28470ba.rlib","/home/icota/Code/tor/rust/target/debug/deps/libmd5-9dac1f56f28470ba.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#threadpool@1.8.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/threadpool-1.8.1/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"threadpool","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/threadpool-1.8.1/src/lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libthreadpool-f38e6a764bc67ea5.rmeta"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rlimit@0.10.2","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rlimit-0.10.2/Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rlimit","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/rlimit-0.10.2/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":2,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/librlimit-9ce79a61a1dc7607.rmeta"],"executable":null,"fresh":true} +{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#arti@1.7.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"/home/icota/Code/tor/rust/target/debug/build/arti-61e191b6aac6c88a/out"} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#delegate-attr@0.3.0","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/delegate-attr-0.3.0/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"delegate_attr","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/delegate-attr-0.3.0/src/lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libdelegate_attr-2f2ddc9c0734748c.so"],"executable":null,"fresh":true} +{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#flutter_rust_bridge_macros@2.11.1","manifest_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flutter_rust_bridge_macros-2.11.1/Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"flutter_rust_bridge_macros","src_path":"/home/icota/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flutter_rust_bridge_macros-2.11.1/src/lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["/home/icota/Code/tor/rust/target/debug/deps/libflutter_rust_bridge_macros-33009fafa7efc565.so"],"executable":null,"fresh":true} +{"reason":"build-finished","success":false} diff --git a/windows/.gitignore b/windows/.gitignore index 4e596be0..264cecea 100644 --- a/windows/.gitignore +++ b/windows/.gitignore @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 Foundation Devices Inc. +# SPDX-FileCopyrightText: 2024 Foundation Devices Inc # # SPDX-License-Identifier: MIT diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt index e5194a43..bf0987b6 100644 --- a/windows/CMakeLists.txt +++ b/windows/CMakeLists.txt @@ -9,20 +9,16 @@ cmake_minimum_required(VERSION 3.14) # Project-level configuration. -set(PROJECT_NAME "tor") +set(PROJECT_NAME "rust_lib_tor") project(${PROJECT_NAME} LANGUAGES CXX) -# Invoke the build for native code shared with the other target platforms. -# This can be changed to accommodate different builds. include("../cargokit/cmake/cargokit.cmake") -apply_cargokit(${PROJECT_NAME} ../rust tor "") +apply_cargokit(${PROJECT_NAME} ../rust rust_lib_tor "") # List of absolute paths to libraries that should be bundled with the plugin. # This list could contain prebuilt libraries, or libraries created by an # external build triggered from this build file. -set(tor_bundled_libraries - # Defined in ../src/CMakeLists.txt. - # This can be changed to accommodate different builds. +set(rust_lib_tor_bundled_libraries "${${PROJECT_NAME}_cargokit_lib}" PARENT_SCOPE )