🪣 Types for a `Vec`'s raw parts

Overview

raw-parts

GitHub Actions Discord Twitter
Crate API API trunk

A wrapper around the decomposed parts of a Vec .

This struct contains the Vec's internal pointer, length, and allocated capacity.

RawParts makes Vec::from_raw_parts and Vec::into_raw_parts easier to use by giving names to the returned values. This prevents errors from mixing up the two usize values of length and capacity.

Usage

Add this to your Cargo.toml:

[dependencies]
raw-parts = "1.0"

Then decompose Vec s like:

use raw_parts::RawParts;

let v: Vec<i32> = vec![-1, 0, 1];

let RawParts { ptr, length, capacity } = RawParts::from_vec(v);

let rebuilt = unsafe {
    // We can now make changes to the components, such as
    // transmuting the raw pointer to a compatible type.
    let ptr = ptr as *mut u32;
    let raw_parts = RawParts { ptr, length, capacity };

    RawParts::into_vec(raw_parts)
};
assert_eq!(rebuilt, [4294967295, 0, 1]);

no_std

raw-parts is no_std compatible with a required dependency on alloc.

Minimum Supported Rust Version

This crate requires at least Rust 1.56.0. This version can be bumped in minor releases.

License

raw-parts is licensed under the MIT License (c) Ryan Lopopolo.

Comments
  • Remove bounds on `T` for `Debug`, `PartialEq` and `Hash` impls

    Remove bounds on `T` for `Debug`, `PartialEq` and `Hash` impls

    RawParts derives Debug, PartialEq, and Hash. The derive macros from core add bounds on T even when they are not required, as is the case with the T in RawParts which is only a pointer and impls these traits regardless of what T is.

    Remove the derived impls and manually implement these traits.

    Such a change warrants a minor version bump.

    E-easy A-raw-parts 
    opened by lopopolo 6
  • chore: Update `.github/workflows/rustdoc.yaml` in `artichoke/raw-parts`

    chore: Update `.github/workflows/rustdoc.yaml` in `artichoke/raw-parts`

    Managed by Terraform.

    Contents

    ---
    name: Documentation
    
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
      schedule:
        - cron: "0 0 * * TUE"
    
    # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
    permissions:
      contents: read
      pages: write
      id-token: write
    
    # Allow one concurrent deployment per branch
    concurrency:
      group: "pages-${{ github.head_ref }}"
      cancel-in-progress: true
    
    jobs:
      # Build job
      rustdoc:
        name: Build Rust API docs
        runs-on: ubuntu-latest
        env:
          RUSTDOCFLAGS: -D warnings -D rustdoc::broken_intra_doc_links --cfg docsrs
          RUST_BACKTRACE: 1
          # https://rust-lang.github.io/rustup/overrides.html
          RUSTUP_TOOLCHAIN: nightly
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install nightly Rust toolchain
            run: |
              echo "::group::rustup toolchain install"
              rustup toolchain install nightly --profile minimal
              echo "::endgroup::"
              echo "::group::rustup version"
              rustup -Vv
              echo "::endgroup::"
              echo "::group::rustc version"
              rustc -Vv
              echo "::endgroup::"
              echo "::group::cargo version"
              cargo version --verbose
              echo "::endgroup::"
              echo "::group::rustdoc version"
              rustdoc -Vv
              echo "::endgroup::"
    
          - name: Check docs with no default features
            run: cargo doc --workspace --no-default-features
    
          - name: Clean docs
            run: cargo clean
    
          - name: Build Documentation
            run: cargo doc --workspace
    
          - name: Upload artifact
            uses: actions/upload-pages-artifact@v1
            with:
              path: ./target/doc
    
      # Deployment job
      deploy:
        name: GitHub Pages deploy
        environment:
          name: github-pages
          url: ${{ steps.deployment.outputs.page_url }}
        runs-on: ubuntu-latest
        needs: build
        if: github.ref == 'refs/heads/trunk'
        steps:
          - name: Deploy to GitHub Pages
            id: deployment
            uses: actions/deploy-pages@v1
    
    A-build C-docs 
    opened by lopopolo 1
  • chore: Update `.github/workflows/code-coverage.yaml` in `artichoke/ra…

    chore: Update `.github/workflows/code-coverage.yaml` in `artichoke/ra…

    …w-parts`

    Managed by Terraform.

    Contents

    ---
    name: Code Coverage
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
    jobs:
      generate:
        name: Generate
        permissions:
          id-token: write
          contents: read
        runs-on: ubuntu-latest
        env:
          RUST_BACKTRACE: 1
          CARGO_NET_GIT_FETCH_WITH_CLI: true
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install nightly Rust toolchain
            uses: artichoke/setup-rust/code-coverage@v1
    
          - name: Setup grcov
            run: |
              release_url="$(curl \
                -H "Accept: application/vnd.github.v3+json" \
                https://api.github.com/repos/mozilla/grcov/releases | \
                jq -r '.[0].assets | map(select(.browser_download_url | test(".*x86_64-unknown-linux-musl.tar.bz2$"))) | .[0].browser_download_url')"
    
              curl -sL "$release_url" | sudo tar xvj -C /usr/local/bin/
    
          - name: Generate coverage
            env:
              LLVM_PROFILE_FILE: "raw-parts-%m-%p.profraw"
              RUSTFLAGS: "-C instrument-coverage"
              # Unstable feature: https://github.com/rust-lang/rust/issues/56925
              RUSTDOCFLAGS: "-C instrument-coverage -Z unstable-options --persist-doctests target/debug/doctests"
            run: cargo test
    
          - name: Generate HTML report
            run: grcov raw-parts*.profraw --source-dir . --keep-only 'src/**/*.rs' --binary-path target/debug -t html --filter covered -o target/coverage
    
          - name: Generate detailed JSON report
            run: grcov raw-parts*.profraw --source-dir . --keep-only 'src/**/*.rs' --binary-path target/debug -t covdir --filter covered -o target/coverage/coverage.json
    
          - name: Configure AWS Credentials
            uses: aws-actions/configure-aws-credentials@master
            if: github.ref == 'refs/heads/trunk'
            with:
              aws-region: us-west-2
              role-to-assume: arn:aws:iam::447522982029:role/gha-raw-parts-s3-backup-20220820215201567700000005
              role-session-name: GitHubActionsRustCodeCoverage@raw-parts
    
          - name: Show AWS caller identity
            if: github.ref == 'refs/heads/trunk'
            run: aws sts get-caller-identity
    
          - name: Upload archives to S3
            if: github.ref == 'refs/heads/trunk'
            run: |
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.svg' --content-type 'image/svg+xml'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.html' --content-type 'text/html'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.json' --content-type 'application/json'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --include '*' --exclude '*.svg' --exclude '*.html' --exclude '*.json'
    
          - name: Check missed lines
            run: |
              curl -s https://codecov.artichokeruby.org/raw-parts/coverage.json | python -c '\
              import sys, json; \
              \
              trunk_coverage = json.loads(sys.stdin.read()); \
              print("On trunk: "); \
              print("coveragePercent =", trunk_coverage["coveragePercent"]); \
              print("linesCovered =", trunk_coverage["linesCovered"]); \
              print("linesMissed =", trunk_coverage["linesMissed"]); \
              print("linesTotal =", trunk_coverage["linesTotal"]); \
              print(""); \
              \
              branch_coverage = json.load(open("target/coverage/coverage.json"))
              print("On PR branch: "); \
              print("coveragePercent =", branch_coverage["coveragePercent"]); \
              print("linesCovered =", branch_coverage["linesCovered"]); \
              print("linesMissed =", branch_coverage["linesMissed"]); \
              print("linesTotal =", branch_coverage["linesTotal"]); \
              print(""); \
              \
              is_ok = branch_coverage["linesMissed"] <= trunk_coverage["linesMissed"]; \
              exit(0) if is_ok else exit(1) \
              '
    
    A-build 
    opened by lopopolo 0
  • chore: Update `.github/workflows/audit.yaml` in `artichoke/raw-parts`

    chore: Update `.github/workflows/audit.yaml` in `artichoke/raw-parts`

    Managed by Terraform.

    Contents

    ---
    name: Audit
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
      schedule:
        - cron: "0 0 * * TUE"
    jobs:
      ruby:
        name: Audit Ruby Dependencies
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Ruby toolchain
            uses: ruby/setup-ruby@v1
            with:
              ruby-version: ".ruby-version"
              bundler-cache: true
    
          - name: bundler-audit
            run: bundle exec bundle-audit check --update
    
      rust:
        name: Audit Rust Dependencies
        runs-on: ubuntu-latest
        strategy:
          matrix:
            checks:
              - advisories
              - bans licenses sources
    
        # Prevent sudden announcement of a new advisory from failing ci:
        continue-on-error: ${{ matrix.checks == 'advisories' }}
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Rust toolchain
            uses: artichoke/setup-rust/audit@v1
    
          - name: Generate Cargo.lock
            run: |
              if [[ ! -f "Cargo.lock" ]]; then
                cargo generate-lockfile --verbose
              fi
    
          - uses: EmbarkStudios/cargo-deny-action@v1
            with:
              arguments: --locked --all-features
              command: check ${{ matrix.checks }}
              command-arguments: --show-stats
    
    A-build 
    opened by lopopolo 0
  • chore(deps): Bump rubocop from 1.38.0 to 1.39.0

    chore(deps): Bump rubocop from 1.38.0 to 1.39.0

    Bumps rubocop from 1.38.0 to 1.39.0.

    Release notes

    Sourced from rubocop's releases.

    RuboCop 1.39

    New features

    Bug fixes

    • #11150: Improve Style/RedundantRegexpEscape to catch unnecessarily escaped hyphens within a character class. (@​si-lens)
    • #11168: Fix an incorrect autocorrect for Style/ClassEqualityComparison when using instance variable comparison in module. (@​koic)
    • #11176: Fix a false positive cases for Lint/DuplicateMethods when using duplicate nested method. (@​koic)
    • #11164: Suppress "RuboCop server starting..." message with --server --format json. (@​koic)
    • #11156: Fix Style/OperatorMethodCall autocorrection when operators are chained. (@​gsamokovarov)
    • #11139: Fix a false negative for Style/HashEachMethods when using each with a symbol proc argument. (@​ydah)
    • #11161: Fix a false positive for Style/HashAsLastArrayItem when using double splat operator. (@​koic)
    • #11151: Fix a false positive for Lint/SuppressedException. (@​akihikodaki)
    • #11123: Fix autocorrection bug for Style/StringLiterals when using multiple escape characters. (@​si-lens)
    • #11165: Fix a false positive for Style/RedundantEach when any method is used between methods containing each in the method name. (@​koic)
    • #11177: Fix a false positive for Style/ObjectThen cop with TargetRubyVersion < 2.6. (@​epaew)
    • #11173: Fix an incorrect autocorrect for Style/CollectionCompact when using reject with block pass arg and no parentheses. (@​koic)
    • #11137: Fix a false positive for Style/RedundantEach when using a symbol proc argument. (@​ydah)
    • #11142: Fix Style/RedundantEach for non-chained each_ calls. (@​fatkodima)

    Changes

    Changelog

    Sourced from rubocop's changelog.

    1.39.0 (2022-11-14)

    New features

    Bug fixes

    • #11150: Improve Style/RedundantRegexpEscape to catch unnecessarily escaped hyphens within a character class. ([@​si-lens][])
    • #11168: Fix an incorrect autocorrect for Style/ClassEqualityComparison when using instance variable comparison in module. ([@​koic][])
    • #11176: Fix a false positive cases for Lint/DuplicateMethods when using duplicate nested method. ([@​koic][])
    • #11164: Suppress "RuboCop server starting..." message with --server --format json. ([@​koic][])
    • #11156: Fix Style/OperatorMethodCall autocorrection when operators are chained. ([@​gsamokovarov][])
    • #11139: Fix a false negative for Style/HashEachMethods when using each with a symbol proc argument. ([@​ydah][])
    • #11161: Fix a false positive for Style/HashAsLastArrayItem when using double splat operator. ([@​koic][])
    • #11151: Fix a false positive for Lint/SuppressedException. ([@​akihikodaki][])
    • #11123: Fix autocorrection bug for Style/StringLiterals when using multiple escape characters. ([@​si-lens][])
    • #11165: Fix a false positive for Style/RedundantEach when any method is used between methods containing each in the method name. ([@​koic][])
    • #11177: Fix a false positive for Style/ObjectThen cop with TargetRubyVersion < 2.6. ([@​epaew][])
    • #11173: Fix an incorrect autocorrect for Style/CollectionCompact when using reject with block pass arg and no parentheses. ([@​koic][])
    • #11137: Fix a false positive for Style/RedundantEach when using a symbol proc argument. ([@​ydah][])
    • #11142: Fix Style/RedundantEach for non-chained each_ calls. ([@​fatkodima][])

    Changes

    Commits
    • 6bdf42b Cut 1.39
    • a0ecf1b Update Changelog
    • d6345ac Merge pull request #11177 from epaew/bugfix/style/object_then
    • b13c21a Fix a false positive for Style/ObjectThen cop with TargetRubyVersion < 2.6
    • 3f3c829 Fix a false positive for Lint/DuplicateMethods
    • 31720ce [Fix #11150] Improve redundant_regex_escape.rb
    • 57e7c45 Merge pull request #11144 from si-lens/fix_auto_correction_bug_for_Style/Stri...
    • 45da59a [Fix #11123 ] Fix auto correction bug for Style/StringLiterals
    • 7b265aa [Fix #11173] Fix an incorrect autocorrect for Style/CollectionCompact
    • dfb1ca5 Add autocorrect for Layout/LineContinuationLeadingSpace
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    A-deps 
    opened by dependabot[bot] 0
  • chore: Update `.github/workflows/rustdoc.yaml` in `artichoke/raw-parts`

    chore: Update `.github/workflows/rustdoc.yaml` in `artichoke/raw-parts`

    Managed by Terraform.

    Contents

    ---
    name: Documentation
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
      schedule:
        - cron: "0 0 * * TUE"
    concurrency:
      group: docs-${{ github.head_ref }}
    jobs:
      rustdoc:
        name: Build Rust API docs
        runs-on: ubuntu-latest
        env:
          RUSTDOCFLAGS: -D warnings -D rustdoc::broken_intra_doc_links --cfg docsrs
          RUST_BACKTRACE: 1
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Rust toolchain
            uses: artichoke/setup-rust/rustdoc@v1
    
          - name: Check docs with no default features
            run: cargo doc --workspace --no-default-features
    
          - name: Clean docs
            run: cargo clean
    
          - name: Build Documentation
            run: cargo doc --workspace
    
          - name: Deploy Docs
            uses: peaceiris/actions-gh-pages@v3
            if: github.ref == 'refs/heads/trunk'
            with:
              github_token: ${{ secrets.GITHUB_TOKEN }}
              publish_dir: ./target/doc
              publish_branch: gh-pages
              user_name: artichoke-ci
              user_email: [email protected]
              # only have the most recent docs in the `gh-pages` branch
              # https://github.com/artichoke/artichoke/issues/1826
              force_orphan: true
    
    A-build A-deps 
    opened by lopopolo 0
  • chore(deps): Bump rubocop from 1.36.0 to 1.38.0

    chore(deps): Bump rubocop from 1.36.0 to 1.38.0

    Bumps rubocop from 1.36.0 to 1.38.0.

    Release notes

    Sourced from rubocop's releases.

    RuboCop 1.38

    New features

    Bug fixes

    • #11125: Fix an error for Layout/SpaceInsideHashLiteralBraces when using method argument that both key and value are hash literals. (@​koic)
    • #11132: Fix clobbering error on Lint/EmptyConditionalBody. (@​r7kamura)
    • #11117: Fix a false positive for Style/BlockDelimiters when specifying EnforcedStyle: semantic and using a single line block with {} followed by a safe navigation method call. (@​koic)
    • #11120: Fix an incorrect autocorrect for Lint/RedundantRequireStatement when using redundant require with modifier form. (@​koic)

    Changes

    • #11131: Check newline in empty reference bracket on Layout/SpaceInsideReferenceBrackets. (@​r7kamura)
    • #11045: Update the Style/ModuleFunction documentation to suggest class << self as an alternative. (@​rdeckard)
    • #11006: Allow multiple elsif for Style/IfWithBooleanLiteralBranches. (@​koic)
    • #11113: Report the count of files in the Worst and the Offense Count formatters. (@​hosamaly)

    RuboCop 1.37.1

    Bug fixes

    • #11102: Fix an error for Style/AccessModifierDeclarations when using access modifier in a block. (@​koic)
    • #11107: Fix a false positive for Style/OperatorMethodCall when a constant receiver uses an operator method. (@​koic)
    • #11104: Fix an error for Style/CollectionCompact when using reject method and receiver is a variable. (@​koic)
    • #11114: Fix an error for Style/OperatorMethodCall when using obj.!. (@​koic)
    • #11088: Fix an error when specifying SuggestExtensions: true. (@​koic)
    • #11089: Fix an error for Style/RedundantStringEscape when using character literals (e.g. ?a). (@​ydah)
    • #11098: Fix false positive for Style/RedundantStringEscape. (@​tdeo)
    • #11095: Fix an error for Style/RedundantStringEscape cop when using ?\n string character literal. (@​koic)

    RuboCop 1.37

    New features

    ... (truncated)

    Changelog

    Sourced from rubocop's changelog.

    1.38.0 (2022-11-01)

    New features

    Bug fixes

    • #11125: Fix an error for Layout/SpaceInsideHashLiteralBraces when using method argument that both key and value are hash literals. ([@​koic][])
    • #11132: Fix clobbering error on Lint/EmptyConditionalBody. ([@​r7kamura][])
    • #11117: Fix a false positive for Style/BlockDelimiters when specifying EnforcedStyle: semantic and using a single line block with {} followed by a safe navigation method call. ([@​koic][])
    • #11120: Fix an incorrect autocorrect for Lint/RedundantRequireStatement when using redundant require with modifier form. ([@​koic][])

    Changes

    • #11131: Check newline in empty reference bracket on Layout/SpaceInsideReferenceBrackets. ([@​r7kamura][])
    • #11045: Update the Style/ModuleFunction documentation to suggest class << self as an alternative. ([@​rdeckard][])
    • #11006: Allow multiple elsif for Style/IfWithBooleanLiteralBranches. ([@​koic][])
    • #11113: Report the count of files in the Worst and the Offense Count formatters. ([@​hosamaly][])

    1.37.1 (2022-10-24)

    Bug fixes

    • #11102: Fix an error for Style/AccessModifierDeclarations when using access modifier in a block. ([@​koic][])
    • #11107: Fix a false positive for Style/OperatorMethodCall when a constant receiver uses an operator method. ([@​koic][])
    • #11104: Fix an error for Style/CollectionCompact when using reject method and receiver is a variable. ([@​koic][])
    • #11114: Fix an error for Style/OperatorMethodCall when using obj.!. ([@​koic][])
    • #11088: Fix an error when specifying SuggestExtensions: true. ([@​koic][])
    • #11089: Fix an error for Style/RedundantStringEscape when using character literals (e.g. ?a). ([@​ydah][])
    • #11098: Fix false positive for Style/RedundantStringEscape. ([@​tdeo][])
    • #11095: Fix an error for Style/RedundantStringEscape cop when using ?\n string character literal. ([@​koic][])

    1.37.0 (2022-10-20)

    New features

    ... (truncated)

    Commits
    • 52a56f0 Cut 1.38
    • c87ed48 Update Changelog
    • d984482 Set whitespace-line-column to 100 in .dir-locals.el
    • e423552 Fix the CI build
    • 360f043 Improve Style/IfWithBooleanLiteralBranches's documentation
    • 6e910eb [Fix #11006] Allow multiple elsif for Style/IfWithBooleanLiteralBranches
    • c4b2bb1 Use broken vertical bar as adoc table separator
    • 41a8249 Tweak wording
    • 72f8c69 Update the Style/ModuleFunction documentation to suggest class << self as...
    • 06cacae [Fix #11120] Fix an incorrect autocorrect for Lint/RedundantRequireStatement
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    A-deps 
    opened by dependabot[bot] 0
  • chore: Update `.github/workflows/audit.yaml` in `artichoke/raw-parts`

    chore: Update `.github/workflows/audit.yaml` in `artichoke/raw-parts`

    Managed by Terraform.

    Contents

    ---
    name: Audit
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
      schedule:
        - cron: "0 0 * * TUE"
    jobs:
      ruby:
        name: Audit Ruby Dependencies
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Ruby toolchain
            uses: ruby/setup-ruby@v1
            with:
              ruby-version: ".ruby-version"
              bundler-cache: true
    
          - name: bundler-audit
            run: bundle exec bundle-audit check --update
    
      rust:
        name: Audit Rust Dependencies
        runs-on: ubuntu-latest
        strategy:
          matrix:
            checks:
              - advisories
              - bans licenses sources
    
        # Prevent sudden announcement of a new advisory from failing ci:
        continue-on-error: ${{ matrix.checks == 'advisories' }}
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Rust toolchain
            run: |
              echo "::group::rustup toolchain install"
              rustup toolchain install stable --profile minimal
              echo "::endgroup::"
              echo "::group::set default toolchain"
              rustup default stable
              echo "::endgroup::"
              echo "::group::rustup version"
              rustup -Vv
              echo "::endgroup::"
              echo "::group::rustc version"
              rustc -Vv
              echo "::endgroup::"
              echo "::group::cargo version"
              cargo version --verbose
              echo "::endgroup::"
    
          - name: Generate Cargo.lock
            run: |
              if [[ ! -f "Cargo.lock" ]]; then
                cargo +stable generate-lockfile --verbose
              fi
    
          - uses: EmbarkStudios/cargo-deny-action@v1
            with:
              arguments: --locked --all-features
              command: check ${{ matrix.checks }}
              command-arguments: --show-stats
    
    A-build A-deps 
    opened by lopopolo 0
  • Bump rubocop from 1.32.0 to 1.36.0

    Bump rubocop from 1.32.0 to 1.36.0

    Bumps rubocop from 1.32.0 to 1.36.0.

    Release notes

    Sourced from rubocop's releases.

    RuboCop 1.36

    New features

    Bug fixes

    • #10958: Fix an infinite loop for Layout/SpaceInsideBlockBraces when EnforcedStyle is no_space and using multiline block. (@​ydah)
    • #10903: Skip forking off extra processes for parallel inspection when only a single file needs to be inspected. (@​wjwh)
    • #10919: Fix a huge performance regression between 1.32.0 and 1.33.0. (@​ydah)
    • #10951: Fix an autocorrection error for Lint/EmptyConditionalBody when some conditional branch is empty. (@​ydah)
    • #10927: Fix a false positive for Style/HashTransformKeys and Style/HashTransformValues when not using transformed block argument. (@​koic)
    • #10979: Fix a false positive for Style/RedundantParentheses when using parentheses with pin operator except for variables. (@​Tietew)
    • #10962: Fix a false positive for Lint/ShadowingOuterLocalVariable when conditional with if/elsif/else branches. (@​ydah)
    • #10969: Fix a false negative for AllowedPatterns of Lint/AmbiguousBlockAssociation when using a method chain. (@​jcalvert)
    • #10963: Fix a false positive for Layout/IndentationWidth when using aligned empty else in pattern matching. (@​koic)
    • #10975: Fix possible wrong autocorrection in namespace on Style/PerlBackrefs. (@​r7kamura)

    Changes

    • #10928: Add more autocorrect support on Style/EachForSimpleLoop. (@​r7kamura)
    • #10960: Add as to AllowedNames in default configuration for Naming/MethodParameterName cop. (@​koic)
    • #10966: Add autocorrect support to Style/AccessModifierDeclarations. (@​r7kamura)
    • #10940: Add server mode status to -V option. (@​koic)

    RuboCop 1.35.1

    Bug fixes

    • #10926: Make Style/SafeNavigation aware of a redundant nil check. (@​koic)
    • #10944: Fix an incorrect autocorrect for Lint/LiteralInInterpolation when using "#{nil}". (@​koic)
    • #10921: Fix an error when ERB pre-processing of the configuration file. (@​koic)
    • #10936: Fix an error for Lint/NonAtomicFileOperation when using FileTest.exist? as a condition for elsif. (@​koic)
    • #10920: Fix an incorrect autocorrect for Style/SoleNestedConditional when using nested conditional and branch contains a comment. (@​koic)
    • #10939: Fix an error for Style/Next when line break before condition. (@​koic)

    RuboCop 1.35

    New features

    ... (truncated)

    Changelog

    Sourced from rubocop's changelog.

    1.36.0 (2022-09-01)

    New features

    Bug fixes

    • #10958: Fix an infinite loop for Layout/SpaceInsideBlockBraces when EnforcedStyle is no_space and using multiline block. ([@​ydah][])
    • #10903: Skip forking off extra processes for parallel inspection when only a single file needs to be inspected. ([@​wjwh][])
    • #10919: Fix a huge performance regression between 1.32.0 and 1.33.0. ([@​ydah][])
    • #10951: Fix an autocorrection error for Lint/EmptyConditionalBody when some conditional branch is empty. ([@​ydah][])
    • #10927: Fix a false positive for Style/HashTransformKeys and Style/HashTransformValues when not using transformed block argument. ([@​koic][])
    • #10979: Fix a false positive for Style/RedundantParentheses when using parentheses with pin operator except for variables. ([@​Tietew][])
    • #10962: Fix a false positive for Lint/ShadowingOuterLocalVariable when conditional with if/elsif/else branches. ([@​ydah][])
    • #10969: Fix a false negative for AllowedPatterns of Lint/AmbiguousBlockAssociation when using a method chain. ([@​jcalvert][])
    • #10963: Fix a false positive for Layout/IndentationWidth when using aligned empty else in pattern matching. ([@​koic][])
    • #10975: Fix possible wrong autocorrection in namespace on Style/PerlBackrefs. ([@​r7kamura][])

    Changes

    • #10928: Add more autocorrect support on Style/EachForSimpleLoop. ([@​r7kamura][])
    • #10960: Add as to AllowedNames in default configuration for Naming/MethodParameterName cop. ([@​koic][])
    • #10966: Add autocorrect support to Style/AccessModifierDeclarations. ([@​r7kamura][])
    • #10940: Add server mode status to -V option. ([@​koic][])

    1.35.1 (2022-08-22)

    Bug fixes

    • #10926: Make Style/SafeNavigation aware of a redundant nil check. ([@​koic][])
    • #10944: Fix an incorrect autocorrect for Lint/LiteralInInterpolation when using "#{nil}". ([@​koic][])
    • #10921: Fix an error when ERB pre-processing of the configuration file. ([@​koic][])
    • #10936: Fix an error for Lint/NonAtomicFileOperation when using FileTest.exist? as a condition for elsif. ([@​koic][])
    • #10920: Fix an incorrect autocorrect for Style/SoleNestedConditional when using nested conditional and branch contains a comment. ([@​koic][])
    • #10939: Fix an error for Style/Next when line break before condition. ([@​koic][])

    1.35.0 (2022-08-12)

    New features

    Bug fixes

    • #10899: Fix an error for Lint/ShadowingOuterLocalVariable when the same variable name as a block variable is used in return value assignment of if. ([@​koic][])
    • #10916: Fix an error when .rubocop.yml is empty. ([@​koic][])
    • #10915: Fix numblock support to Layout/BlockAlignment, Layout/BlockEndNewline, Layout/EmptyLinesAroundAccessModifier, Layout/EmptyLinesAroundBlockBody, Layout/IndentationWidth, Layout/LineLength, Layout/MultilineBlockLayout, Layout/SpaceBeforeBlockBraces, Lint/NextWithoutAccumulator, Lint/NonDeterministicRequireOrder, Lint/RedundantWithIndex, Lint/RedundantWithObject, Lint/UnreachableLoop, Lint/UselessAccessModifier, Lint/Void, Metrics/AbcSize, Metrics/CyclomaticComplexity, Style/CollectionMethods, Style/CombinableLoops, Style/EachWithObject, Style/For, Style/HashEachMethods, Style/InverseMethods, Style/MethodCalledOnDoEndBlock, Style/MultilineBlockChain, Style/Next, Style/ObjectThen, Style/Proc, Style/RedundantBegin, Style/RedundantSelf, Style/RedundantSortBy and Style/TopLevelMethodDefinition. ([@​gsamokovarov][])
    • #10895: Fix incorrect autocomplete in Style/RedundantParentheses when a heredoc is used in an array. ([@​dvandersluis][])

    ... (truncated)

    Commits
    • 3b3c5f5 Cut 1.36
    • ac98c75 Update Changelog
    • 78eb21e Add a spec for server mode
    • ca5b3c3 Merge pull request #10984 from r7kamura/feature/modifier-example
    • aad6aaa Improve singleton method example on Lint/UselessAccessModifier cop
    • 2fb4c3c Fix an error for rake prof:slow_cops
    • 65cec7c Merge pull request #10928 from r7kamura/feature/each
    • 3088078 Merge pull request #10981 from Tietew/fix_a_false_positive_for_style_redundan...
    • 0780cb5 Merge pull request #10932 from koic/use_official_jruby_image
    • 45403e3 [Fix #10979] Fix a false positive for Style/Style/RedundantParentheses
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    A-deps 
    opened by dependabot[bot] 0
  • chore: Update `.github/workflows/code-coverage.yaml` in `artichoke/ra…

    chore: Update `.github/workflows/code-coverage.yaml` in `artichoke/ra…

    …w-parts`

    Managed by Terraform.

    Contents

    ---
    name: Code Coverage
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
    jobs:
      generate:
        name: Generate
        permissions:
          id-token: write
          contents: read
        runs-on: ubuntu-latest
        env:
          RUST_BACKTRACE: 1
          CARGO_NET_GIT_FETCH_WITH_CLI: true
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Rust toolchain
            uses: actions-rs/toolchain@v1
            with:
              toolchain: nightly
              profile: minimal
              override: true
              components: llvm-tools-preview
    
          - name: Setup grcov
            run: |
              release_url="$(curl \
                -H "Accept: application/vnd.github.v3+json" \
                https://api.github.com/repos/mozilla/grcov/releases | \
                jq -r '.[0].assets | map(select(.browser_download_url | test(".*x86_64-unknown-linux-musl.tar.bz2$"))) | .[0].browser_download_url')"
    
              curl -sL "$release_url" | sudo tar xvj -C /usr/local/bin/
    
          - name: Generate coverage
            env:
              LLVM_PROFILE_FILE: "raw-parts-%m-%p.profraw"
              RUSTFLAGS: "-C instrument-coverage"
              # Unstable feature: https://github.com/rust-lang/rust/issues/56925
              RUSTDOCFLAGS: "-C instrument-coverage -Z unstable-options --persist-doctests target/debug/doctests"
            run: cargo test
    
          - name: Generate HTML report
            run: grcov raw-parts*.profraw --source-dir . --keep-only 'src/**/*.rs' --binary-path target/debug -t html --filter covered -o target/coverage
    
          - name: Generate detailed JSON report
            run: grcov raw-parts*.profraw --source-dir . --keep-only 'src/**/*.rs' --binary-path target/debug -t covdir --filter covered -o target/coverage/coverage.json
    
          - name: Configure AWS Credentials
            uses: aws-actions/configure-aws-credentials@master
            if: github.ref == 'refs/heads/trunk'
            with:
              aws-region: us-west-2
              role-to-assume: arn:aws:iam::447522982029:role/gha-raw-parts-s3-backup-20220820215201567700000005
              role-session-name: GitHubActionsRustCodeCoverage@raw-parts
    
          - name: Show AWS caller identity
            if: github.ref == 'refs/heads/trunk'
            run: aws sts get-caller-identity
    
          - name: Upload archives to S3
            if: github.ref == 'refs/heads/trunk'
            run: |
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.svg' --content-type 'image/svg+xml'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.html' --content-type 'text/html'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.json' --content-type 'application/json'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --include '*' --exclude '*.svg' --exclude '*.html' --exclude '*.json'
    
          - name: Check missed lines
            run: |
              curl -s https://codecov.artichokeruby.org/raw-parts/coverage.json | python -c '\
              import sys, json; \
              \
              trunk_coverage = json.loads(sys.stdin.read()); \
              print("On trunk: "); \
              print("coveragePercent =", trunk_coverage["coveragePercent"]); \
              print("linesCovered =", trunk_coverage["linesCovered"]); \
              print("linesMissed =", trunk_coverage["linesMissed"]); \
              print("linesTotal =", trunk_coverage["linesTotal"]); \
              print(""); \
              \
              branch_coverage = json.load(open("target/coverage/coverage.json"))
              print("On PR branch: "); \
              print("coveragePercent =", branch_coverage["coveragePercent"]); \
              print("linesCovered =", branch_coverage["linesCovered"]); \
              print("linesMissed =", branch_coverage["linesMissed"]); \
              print("linesTotal =", branch_coverage["linesTotal"]); \
              print(""); \
              \
              is_ok = branch_coverage["linesMissed"] <= trunk_coverage["linesMissed"]; \
              exit(0) if is_ok else exit(1) \
              '
    
    A-build 
    opened by lopopolo 0
  • chore: Update `.github/workflows/code-coverage.yaml` in `artichoke/ra…

    chore: Update `.github/workflows/code-coverage.yaml` in `artichoke/ra…

    …w-parts`

    Managed by Terraform.

    Contents

    ---
    name: Code Coverage
    "on":
      push:
        branches:
          - trunk
      pull_request:
        branches:
          - trunk
    jobs:
      generate:
        name: Generate
        permissions:
          id-token: write
          contents: read
        runs-on: ubuntu-latest
        env:
          RUST_BACKTRACE: 1
          CARGO_NET_GIT_FETCH_WITH_CLI: true
        steps:
          - name: Checkout repository
            uses: actions/checkout@v3
    
          - name: Install Rust toolchain
            uses: actions-rs/toolchain@v1
            with:
              toolchain: nightly
              profile: minimal
              override: true
              components: llvm-tools-preview
    
          - name: Setup grcov
            run: |
              release_url="$(curl \
                -H "Accept: application/vnd.github.v3+json" \
                https://api.github.com/repos/mozilla/grcov/releases | \
                jq -r '.[0].assets | map(select(.browser_download_url | test(".*x86_64-unknown-linux-musl.tar.bz2$"))) | .[0].browser_download_url')"
    
              curl -sL "$release_url" | sudo tar xvj -C /usr/local/bin/
    
          - name: Generate coverage
            env:
              LLVM_PROFILE_FILE: "raw-parts-%m-%p.profraw"
              RUSTFLAGS: "-C instrument-coverage"
              # Unstable feature: https://github.com/rust-lang/rust/issues/56925
              RUSTDOCFLAGS: "-C instrument-coverage -Z unstable-options --persist-doctests target/debug/doctests"
            run: |
              cargo +nightly test --lib
              cargo +nightly test --doc
    
          - name: Generate HTML report
            run: grcov raw-parts*.profraw --source-dir . --binary-path target/debug -t html --filter covered -o target/coverage
    
          - name: Generate detailed JSON report
            run: grcov raw-parts*.profraw --source-dir . --binary-path target/debug -t covdir --filter covered -o target/coverage/coverage.json
    
          - name: Configure AWS Credentials
            uses: aws-actions/configure-aws-credentials@master
            if: github.ref == 'refs/heads/trunk'
            with:
              aws-region: us-west-2
              role-to-assume: arn:aws:iam::447522982029:role/gha-raw-parts-s3-backup-20220820215201567700000005
              role-session-name: GitHubActionsRustCodeCoverage@raw-parts
    
          - name: Show AWS caller identity
            if: github.ref == 'refs/heads/trunk'
            run: aws sts get-caller-identity
    
          - name: Upload archives to S3
            if: github.ref == 'refs/heads/trunk'
            run: |
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.svg' --content-type 'image/svg+xml'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.html' --content-type 'text/html'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --exclude '*' --include '*.json' --content-type 'application/json'
              aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/raw-parts/ --delete --sse AES256 --include '*' --exclude '*.svg' --exclude '*.html' --exclude '*.json'
    
          - name: Check missed lines
            run: |
              curl -s https://codecov.artichokeruby.org/raw-parts/coverage.json | python -c '\
              import sys, json; \
              \
              trunk_coverage = json.loads(sys.stdin.read()); \
              print("On trunk: "); \
              print("coveragePercent =", trunk_coverage["coveragePercent"]); \
              print("linesCovered =", trunk_coverage["linesCovered"]); \
              print("linesMissed =", trunk_coverage["linesMissed"]); \
              print("linesTotal =", trunk_coverage["linesTotal"]); \
              print(""); \
              \
              branch_coverage = json.load(open("target/coverage/coverage.json"))
              print("On PR branch: "); \
              print("coveragePercent =", branch_coverage["coveragePercent"]); \
              print("linesCovered =", branch_coverage["linesCovered"]); \
              print("linesMissed =", branch_coverage["linesMissed"]); \
              print("linesTotal =", branch_coverage["linesTotal"]); \
              print(""); \
              \
              is_ok = branch_coverage["linesMissed"] <= trunk_coverage["linesMissed"]; \
              exit(0) if is_ok else exit(1) \
              '
    
    A-build 
    opened by lopopolo 0
  • Add test coverage for `<impl Hash for RawParts<T>>::hash`

    Add test coverage for `>::hash`

    From cargo-mutants, <impl Hash for RawParts<T>>::hash is missing test coverage:

    $ cargo mutants
    Freshen source tree ... ok in 0.556s
    Copy source and build products to scratch directory ... 181 MB in 0.237s
    Unmutated baseline ... ok in 1.214s
    Auto-set test timeout to 20.0s
    Found 7 mutants to test
    src/lib.rs:143: replace <impl Hash for RawParts<T>>::hash with () ... NOT CAUGHT in 1.544s
    7 mutants tested in 0:07: 1 missed, 4 caught, 2 unviable
    

    Testing this will probably require adding this to lib.rs to bring in a hasher for tests (or a dev dependency on fnv or rustc-hash):

    #[cfg(test)]
    extern crate std;
    

    I imagine these tests will look similar to the ones for PartialEq:

    https://github.com/artichoke/raw-parts/blob/12cc5b1ae6c4c74e4f5e22d50afd8b3e979b8402/src/lib.rs#L358-L415

    C-quality E-easy E-needs-test 
    opened by lopopolo 0
Releases(v1.1.2)
Owner
Artichoke Ruby
Artichoke is a Ruby made with Rust
Artichoke Ruby
A safe wrapper around Gamercade's raw Api.

gamercade-rs A safe wrapper around Gamercade's Raw Api. As the Raw Api requires using a lot of unsafe and hiding of values through different types (fo

null 1 Aug 23, 2022
Traits for inspecting memory usage of Rust types

memuse This crate contains traits for measuring the dynamic memory usage of Rust types. About Memory-tracking is a common activity in large applicatio

null 13 Dec 23, 2022
A list of known SS58 account types as an enum.

A list of known SS58 account types as an enum.

Parity Technologies 39 Dec 14, 2022
Annoyed that Rust has many string types? Well it doesn't have to

generic-str The one true string type in Rust! This project intends to be a proof-of-concept for an idea I had a few months back. There is lots of unsa

Conrad Ludgate 40 Apr 9, 2022
Use explicit container types with Scrypto! Leverage the Rust compiler's type checking to increase security and productivity when developing Radix blueprints.

Scrypto Static Types Use explicit container types with Scrypto! Leverage the Rust compiler's type checking to increase security and productivity when

null 7 Aug 5, 2022
An unsafe botched job that doesn't rely on types being 'static lifetime.

An unsafe botched job that doesn't rely on types being 'static lifetime. Will panic if provided a 0 field struct. I will fix this when I figure out how.

twhite 0 Feb 4, 2022
Rust types for the OASIS Common Alerting Protocol (CAP)

Rust types for the OASIS Common Alerting Protocol (CAP)

Will Glynn 2 Jun 6, 2022
A rust program to try and detect some types of Hardware Keyloggers.

Hardware Keylogger Detection Warning: Certain Types of Hardware keyloggers can not be detected by this program, Passive Hardware Keyloggers are imposs

null 4 Dec 5, 2022
A repository full of manually generated hand curated JSON files, which contain the API Types that the Discord API returns.

Discord API Types A repository full of manually generated hand curated JSON files, which contain the API Types that the Discord API returns. Also did

Unofficial Discord Documentation 1 Sep 16, 2022
Option and Either types with variants known at compile time.

Const Either Some types to allow deciding at compile time if an option contains a value or which variant from the either type is active. This might be

null 1 May 5, 2022
Application that simulates a large grid of Pokémon types fighting each other.

poke-fighting-rust Rust project that simulates a grid of Pokémon fighting with each other. Each Pokémon type is a pixel on the grid and is represented

Ólafur Waage 11 Dec 19, 2022
The most primitive and the fastest implementation of a fixed-size last-in-first-out stack on stack in Rust, for Copy-implementing types

This is the simplest and the fastest (faster than Vec!) implementation of a last-in-first-out stack data structure, on stack, when stack elements are

Yegor Bugayenko 10 Jun 18, 2023
It's implemented by laying out the elements in memory contiguously like alloc::vec::Vec

A Vec<T: ?Sized> It's implemented by laying out the elements in memory contiguously like alloc::vec::Vec Layout A Vechonk is 4 usize long. It owns a s

nils 4 Sep 15, 2022
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
Raw C Shell: interact with your operating system using raw C code, because why not?

rcsh Raw C Shell is a minimalist shell with no built in commands. You write entirely in C code and use return; to execute your code. Unlike that silly

null 4 Feb 7, 2023
Serialize/DeSerialize for Rust built-in types and user defined types (complex struct types)

Serialize/DeSerialize for Rust built-in types and user defined types (complex struct types)

null 2 May 3, 2022
Rust lib for a Vec-like structure that can store different types of different sizes contiguous with each other in memory.

hvec In memory of Anna Harren, who coined the term turbofish - which you'll see a lot of if you use this crate. The main purpose of this crate is the

Vi 2 Oct 23, 2022
Unopinionated low level API bindings focused on soundness, safety, and stronger types over raw FFI.

?? firehazard ?? Create a fire hazard by locking down your (Microsoft) Windows so nobody can escape (your security sandbox.) Unopinionated low level A

null 5 Nov 17, 2022
A black-box raw calldata decoder using only calldata to guess types and parse parameters.

Calldata Decoder A black-box raw calldata decoder using only calldata. Based off the topics discussed in DeGatchi's article, Reverse The EVM: Raw Call

DeGatchi 78 Jan 24, 2023
Shows how to implement USB device on RP2040 in Rust, in a single file, with no hidden parts.

Rust RP2040 USB Device Example This is a worked example of implementing a USB device on the RP2040 microcontroller, in Rust. It is designed to be easy

Cliff L. Biffle 9 Dec 7, 2022