Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
4aaceb8
Initial implementation (still a draft)
ijchen Feb 11, 2025
1a6c5c9
wrote comment explaining ManuallyDrop in into_boxed_owner
ijchen Feb 11, 2025
fc6583a
fixed typo
ijchen Feb 12, 2025
c894aab
fixed panic unsafety in Pair::into_boxed_owner
ijchen Feb 11, 2025
3be6e74
improving documentation
ijchen Feb 12, 2025
9fee9b6
wrote safety justification for Pair::get_owner
ijchen Feb 12, 2025
f97b0ea
wrote safety justification for Pair::get_dependent
ijchen Feb 12, 2025
0fbe312
wrote safety justification for Pair::into_boxed_owner
ijchen Feb 12, 2025
405a037
wrote safety justification for <Pair as Drop>::drop
ijchen Feb 12, 2025
d8bd6ba
added to-do comment for fallible 'try' API
ijchen Feb 12, 2025
c566efc
updated with_dependent to fix soundness hole - added with_dependent_mut
ijchen Feb 16, 2025
1f7fc85
cut lifetime GATs
ijchen Feb 16, 2025
756238a
genuinely gross generics gymnastics guaranteed to gather gags
ijchen Feb 17, 2025
2a5c581
refactored convenience pair wrappers
ijchen Feb 18, 2025
2fd917e
moved ref_owner to convenience
ijchen Feb 18, 2025
cdcb851
updated Owner trait, improved documentation
ijchen Feb 19, 2025
dc72640
updated convenience wrapper types slightly
ijchen Feb 19, 2025
d203d4e
cut convenience wrappers (useless - just use the owning type)
ijchen Feb 19, 2025
8075346
cleaned up comments in lib.rs
ijchen Feb 19, 2025
6468d66
Merge pull request #1 from ijchen/hrtb_over_gat
ijchen Feb 20, 2025
10ed36a
added panic handling when calling user-provided code
ijchen Feb 21, 2025
28b767c
added API overview to README.md
ijchen Feb 21, 2025
ff8ba96
updated README.md
ijchen Feb 22, 2025
9dee643
updated example usage section
ijchen Feb 22, 2025
ecd4900
added changelog and lints to-do comment
ijchen Feb 22, 2025
d8259e5
made README doc links clickable
ijchen Feb 22, 2025
b3fcf6a
added ON_RELEASE comment marker
ijchen Feb 22, 2025
3a6d0d7
added ON_RELEASE comment to changelog
ijchen Feb 22, 2025
c2915f3
made example usage in README a single (unit testedgit add .) code block
ijchen Feb 22, 2025
5d1c86f
made Context a ltGAT, started tests
ijchen Feb 24, 2025
a1e78d9
added alternative constructors test
ijchen Feb 25, 2025
0b6fee7
added panic safety tests
ijchen Feb 25, 2025
a196368
added drop tests
ijchen Feb 27, 2025
4a3af8b
added test for Debug impl
ijchen Feb 28, 2025
698526b
moved sealed stuff to bottom of owner.rs
ijchen Feb 28, 2025
bdc8fbe
updated drop tests to check drop order
ijchen Feb 28, 2025
cbde27b
added to-do list for tests
ijchen Feb 28, 2025
bd80a3d
updated test to-do documentation
ijchen Mar 1, 2025
24336a3
added ZST tests
ijchen Mar 1, 2025
0e5dcde
implemented default tests
ijchen Mar 1, 2025
c11c1bc
added multiborrow owner test
ijchen Mar 1, 2025
b858995
simplified signatures
ijchen Mar 1, 2025
65a72b7
added nested pair test
ijchen Mar 1, 2025
8864726
updated to-do list
ijchen Mar 1, 2025
a4c27cf
added variance related tests
ijchen Mar 2, 2025
9ed874c
updated test to-do list
ijchen Mar 2, 2025
a9b3a39
added dynamic trait owner test
ijchen Mar 2, 2025
0aecf20
updated test to-do list
ijchen Mar 2, 2025
b44e981
cleaned up syntax
ijchen Mar 2, 2025
dee71bb
added interior mutability tests
ijchen Mar 2, 2025
43f3177
added tests attempting to extract dep from with_dependent_mut
ijchen Mar 2, 2025
3f84cbc
added test that attempts to keep dep alive after pair is dropped
ijchen Mar 2, 2025
e9fa8db
added test that attempts to use dependent after into_owner(..)
ijchen Mar 3, 2025
ab2677f
fixed path in Cargo.toml
ijchen Mar 3, 2025
8c7bcdc
minor comment wording tweak
ijchen Mar 3, 2025
87c7b96
another minor wording tweak in a comment
ijchen Mar 3, 2025
ac7433a
minor wording tweak
ijchen Mar 3, 2025
2c12c08
renamed Owner's Err associated type to Error
ijchen Mar 3, 2025
cbd0f3c
added Send/Sync trybuild tests
ijchen Mar 4, 2025
7d66e77
added leak sanitizer and nightly test to ci.sh
ijchen Mar 4, 2025
00ac7d7
added concurrency tests
ijchen Mar 5, 2025
782fe94
updated ON_RELEASE comments
ijchen Mar 5, 2025
99c7759
added cargo fmt check to ci
ijchen Mar 5, 2025
fe27310
added keywords and categories to Cargo.toml
ijchen Mar 5, 2025
b9a55a6
added -Dwarnings to CI
ijchen Mar 5, 2025
c7a3f49
updated lib.rs README include to be cfg gated
ijchen Mar 5, 2025
8345c74
added no_std support
ijchen Mar 5, 2025
9462c67
clippy has arrived
ijchen Mar 5, 2025
f537c3f
Organized (perhaps excessively) Cargo.toml
ijchen Mar 6, 2025
c7d311d
updated to-do list
ijchen Mar 7, 2025
4703a0f
CI is real... surely it works first try
ijchen Mar 8, 2025
80ca26c
updated CI with names and cut cache
ijchen Mar 8, 2025
ae21688
split MIRI tests into separate jobs
ijchen Mar 8, 2025
73d2aaf
moved lint before build
ijchen Mar 8, 2025
00455c9
updated to-do list
ijchen Mar 8, 2025
aac1903
OCD fix
ijchen Mar 8, 2025
86d8af0
improved ci.sh
Mar 12, 2025
96c78cc
moved build after lint (minor)
Mar 12, 2025
e5981da
moved to-do list from lib.rs to TO-DO.md
Mar 12, 2025
99bba34
enabled strict provenance checks in MIRI, cleaned up ci.sh
Mar 12, 2025
320d7e7
documented feature flags in README.md, updated TO-DO.md
Mar 12, 2025
552304f
cut trybuild, hand-rolled test framework
Mar 12, 2025
a0bdbaf
deleted TO-DO.md
Mar 13, 2025
1712673
TO-DO.md is so back
Mar 13, 2025
ffe005f
updated docs CI job to run on nightly as well
Mar 13, 2025
f1e3431
improved documentation
Mar 13, 2025
6316b01
updated TO-DO.md
Mar 13, 2025
9756375
added header for first section
Mar 13, 2025
8b7167e
updated TO-DO.md
Mar 13, 2025
47cea66
added test that builds against nostd target
ijchen Mar 13, 2025
a2aaa94
added nostd tests to CI
ijchen Mar 13, 2025
4dbcc56
swapped test order in ci.yaml
ijchen Mar 13, 2025
c763d1f
added non-1-ZSTs to ZST tests
ijchen Mar 13, 2025
68b5891
cut code coverage (too many false positives)
ijchen Mar 13, 2025
3df4611
added badges
ijchen Mar 14, 2025
86af9ce
made license badge ignore clicks
ijchen Mar 14, 2025
6331612
updated CHANGELOG.md for v1.0.0
ijchen Mar 14, 2025
292ce33
removed TO-DO.md
ijchen Mar 14, 2025
0a9382a
added forgotten ?Sized relaxing bound
ijchen Mar 14, 2025
13a5138
added TODO comment to look into dropck mismatch
ijchen Mar 14, 2025
14e243e
refactored panic handling to use drop guards
ijchen Mar 14, 2025
7129cc0
cut dropck to-do comment (I feel relatively certain it is not a probl…
ijchen Mar 14, 2025
b085c34
moved constructor documentation to a dedicated section in Pair's docs
ijchen Mar 14, 2025
276a4a0
fixed grammatical error
ijchen Mar 15, 2025
c572b43
renamed get_owner(..) to just owner(..)
ijchen Mar 15, 2025
b67b89e
added with_both[_mut] methods to Pair
ijchen Mar 15, 2025
a6a9d3d
updated CHANGELOG.md to specify 0.2.0 instead of 1.0.0
ijchen Mar 15, 2025
7c53ba3
cleaned up implementation of with_both_mut slightly
ijchen Mar 15, 2025
fa36691
added Dependent<'owner, O> type alias
ijchen Mar 15, 2025
88a8fc1
addressed ON_RELEASE chores
ijchen Mar 15, 2025
41fe479
ready for release 0.2.0
Mar 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: CI

# Run on any push or any PR (both for any branch)
on: [push, pull_request]

env:
CARGO_TERM_COLOR: always # Pretty colors
jobs:
check_fmt:
name: Cargo fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Cargo fmt
run: ./ci.sh check_fmt

check_docs:
name: Cargo docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: dtolnay/rust-toolchain@nightly
- name: Cargo docs
run: ./ci.sh check_docs

lint:
name: Lint (clippy)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Lint (clippy)
run: ./ci.sh lint

build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Build
run: ./ci.sh build

build_nostd:
name: Build (nostd)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv6m-none-eabi
- name: Build (nostd)
run: ./ci.sh build_nostd

run_tests_stable:
name: Tests (stable)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Tests (stable)
run: ./ci.sh run_tests_stable

run_tests_beta:
name: Tests (beta)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@beta
- name: Tests (beta)
run: ./ci.sh run_tests_beta

run_tests_msrv:
name: Tests (MSRV)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@1.85.0
- name: Tests (MSRV)
run: ./ci.sh run_tests_msrv

run_tests_leak_sanitizer:
name: Tests (leak sanitizer)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- name: Tests (leak sanitizer)
run: ./ci.sh run_tests_leak_sanitizer

run_tests_miri:
name: Tests (MIRI)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- name: Tests (MIRI)
run: ./ci.sh run_tests_miri
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Major Version 0

## v0.2.0

Implemented the core functionality of this crate:
- Defined `Pair` struct
- Defined `Owner` and `HasDependent` traits
- Defined `Dependent` type alias

## v0.1.0

Initial (empty) release.
Loading