├── .github ├── dependabot.yml ├── labels.yaml └── workflows │ ├── audit.yaml │ ├── bench.yaml │ ├── block-merge.yaml │ ├── ci.yaml │ ├── miri.yaml │ ├── repo-labels.yaml │ └── rustdoc.yaml ├── .gitignore ├── .node-version ├── .prettierignore ├── .prettierrc.yaml ├── .rubocop.yml ├── .ruby-version ├── .yamllint.yaml ├── Cargo.toml ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── Rakefile ├── benchmarks ├── .gitignore ├── Cargo.toml ├── benches │ └── drop.rs └── src │ └── lib.rs ├── clippy.toml ├── deny.toml ├── doc └── cactus-harvesting.md ├── package.json ├── rust-toolchain.toml ├── src ├── adopt.rs ├── cycle.rs ├── doc │ └── implementing_self_referential_data_structures.rs ├── drop.rs ├── hash.rs ├── lib.rs ├── link.rs ├── rc.rs ├── rc │ └── tests.rs └── tests.rs └── tests ├── leak_adopt_self.rs ├── leak_adopt_self_noop.rs ├── leak_adopt_with_dropped_rc.rs ├── leak_adopt_with_members_in_multiple_cycles.rs ├── leak_chain.rs ├── leak_doubly_linked_list.rs ├── leak_fully_connected_graph.rs ├── leak_mutually_adopted.rs ├── leak_self_referential_collection_strong.rs ├── leak_self_referential_collection_weak.rs ├── leak_unadopt.rs ├── weak.rs └── weak_upgrade_returns_none_when_cycle_is_deallocated.rs /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/labels.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/labels.yaml -------------------------------------------------------------------------------- /.github/workflows/audit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/audit.yaml -------------------------------------------------------------------------------- /.github/workflows/bench.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/bench.yaml -------------------------------------------------------------------------------- /.github/workflows/block-merge.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/block-merge.yaml -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/miri.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/miri.yaml -------------------------------------------------------------------------------- /.github/workflows/repo-labels.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/repo-labels.yaml -------------------------------------------------------------------------------- /.github/workflows/rustdoc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.github/workflows/rustdoc.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.gitignore -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | lts/* 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.prettierrc.yaml -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.4 2 | -------------------------------------------------------------------------------- /.yamllint.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/.yamllint.yaml -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/Gemfile -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/Gemfile.lock -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/Rakefile -------------------------------------------------------------------------------- /benchmarks/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/benchmarks/.gitignore -------------------------------------------------------------------------------- /benchmarks/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/benchmarks/Cargo.toml -------------------------------------------------------------------------------- /benchmarks/benches/drop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/benchmarks/benches/drop.rs -------------------------------------------------------------------------------- /benchmarks/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/benchmarks/src/lib.rs -------------------------------------------------------------------------------- /clippy.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/clippy.toml -------------------------------------------------------------------------------- /deny.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/deny.toml -------------------------------------------------------------------------------- /doc/cactus-harvesting.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/doc/cactus-harvesting.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/package.json -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "nightly" 3 | -------------------------------------------------------------------------------- /src/adopt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/adopt.rs -------------------------------------------------------------------------------- /src/cycle.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/cycle.rs -------------------------------------------------------------------------------- /src/doc/implementing_self_referential_data_structures.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/doc/implementing_self_referential_data_structures.rs -------------------------------------------------------------------------------- /src/drop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/drop.rs -------------------------------------------------------------------------------- /src/hash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/hash.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/link.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/link.rs -------------------------------------------------------------------------------- /src/rc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/rc.rs -------------------------------------------------------------------------------- /src/rc/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/rc/tests.rs -------------------------------------------------------------------------------- /src/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/src/tests.rs -------------------------------------------------------------------------------- /tests/leak_adopt_self.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_adopt_self.rs -------------------------------------------------------------------------------- /tests/leak_adopt_self_noop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_adopt_self_noop.rs -------------------------------------------------------------------------------- /tests/leak_adopt_with_dropped_rc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_adopt_with_dropped_rc.rs -------------------------------------------------------------------------------- /tests/leak_adopt_with_members_in_multiple_cycles.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_adopt_with_members_in_multiple_cycles.rs -------------------------------------------------------------------------------- /tests/leak_chain.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_chain.rs -------------------------------------------------------------------------------- /tests/leak_doubly_linked_list.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_doubly_linked_list.rs -------------------------------------------------------------------------------- /tests/leak_fully_connected_graph.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_fully_connected_graph.rs -------------------------------------------------------------------------------- /tests/leak_mutually_adopted.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_mutually_adopted.rs -------------------------------------------------------------------------------- /tests/leak_self_referential_collection_strong.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_self_referential_collection_strong.rs -------------------------------------------------------------------------------- /tests/leak_self_referential_collection_weak.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_self_referential_collection_weak.rs -------------------------------------------------------------------------------- /tests/leak_unadopt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/leak_unadopt.rs -------------------------------------------------------------------------------- /tests/weak.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/weak.rs -------------------------------------------------------------------------------- /tests/weak_upgrade_returns_none_when_cycle_is_deallocated.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/artichoke/cactusref/HEAD/tests/weak_upgrade_returns_none_when_cycle_is_deallocated.rs --------------------------------------------------------------------------------