Skip to content

Commit 09bc5e9

Browse files
stegaBOBbzierksamuelvanderwaal
authored
Unify Mut and Ref types in UnsizedType system (#291)
* Made it probably sound? Co-authored-by: Bryan Zierk <[email protected]> Co-authored-by: Samuel Vanderwaal <[email protected]> * fix docs * fix docs actually this time * update docs Co-authored-by: Bryan Zierk <[email protected]> * add docs Co-authored-by: Bryan Zierk <[email protected]> * use type aliases Co-authored-by: Bryan Zierk <[email protected]> * Add when accessing UnsizedDataMut * changelog and some tiny improvements --------- Co-authored-by: Bryan Zierk <[email protected]> Co-authored-by: Samuel Vanderwaal <[email protected]> Co-authored-by: Bryan Zierk <[email protected]>
1 parent dfcae14 commit 09bc5e9

File tree

32 files changed

+1078
-1816
lines changed

32 files changed

+1078
-1816
lines changed

CHANGELOG.md

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,115 +9,118 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Changed
1111

12-
- Improved ergonomics of indexing into UnsizedList by allowing direct use of RangeBounds instead of wrapping in a tuple. (#289)
12+
- Improved ergonomics of indexing into UnsizedList by allowing direct use of RangeBounds instead of wrapping in a tuple. (#289)
13+
- Unified `UnsizedType::Ref` and `UnsizedType::Mut` into a single `UnsizedType::Ptr` type (#291)
14+
- Updated #[unsized_impl] to implicitly work for only exclusive functions and relaxed the signature restriction to allow moved self parameters (#291)
1315

1416
### Fixed
1517

16-
- Ensure our `Error` type implements `Send` and `Sync` traits. (#290)
18+
- Ensure our `Error` type implements `Send` and `Sync` traits. (#290)
19+
- Added additional pointer checks to unsized type to detect mem::swaps to prevent UB (#291)
1720

1821
## [0.26.3] - 2025-10-28
1922

2023
### Fixed
2124

22-
- Fixed errors in cli template caused due to breaking changes made in star_frame (#283)
25+
- Fixed errors in cli template caused due to breaking changes made in star_frame (#283)
2326

24-
- Fixed errors in cli test template caused due to breaking changes made in star_frame (#284)
27+
- Fixed errors in cli test template caused due to breaking changes made in star_frame (#284)
2528

2629
## [0.26.2] - 2025-10-15
2730

2831
### Fixed
2932

30-
- Reduced unsized map CU cost by 50% when key already exists (#281)
31-
- Use full result path in unsized_type proc macro (#281)
33+
- Reduced unsized map CU cost by 50% when key already exists (#281)
34+
- Use full result path in unsized_type proc macro (#281)
3235

3336
## [0.26.1] - 2025-10-02
3437

3538
### Fixed
3639

37-
- Fixed error macros and add tests (#277)
40+
- Fixed error macros and add tests (#277)
3841

3942
### Removed
4043

41-
- Removed `err` macro (#277)
44+
- Removed `err` macro (#277)
4245

4346
## [0.26.0] - 2025-09-25
4447

4548
### Added
4649

47-
- New unit system functions including checked math, overflow, and fixed support (#255).
48-
- `ClockExt` for unit system timestamps (#255).
49-
- `normalize_rent` alias for `AccountSet` `cleanup` (#263)
50-
- Changed from `anyhow` to `eyre` (#265)
51-
- Added `borsh` to `UnitVal` (#266)
52-
- Removed default init requirement on unsized list default init. (#267)
53-
- Added more `Align1` impls for tuples. (#268)
54-
- Added `star_frame_error` macro and custom error system (#271)
50+
- New unit system functions including checked math, overflow, and fixed support (#255).
51+
- `ClockExt` for unit system timestamps (#255).
52+
- `normalize_rent` alias for `AccountSet` `cleanup` (#263)
53+
- Changed from `anyhow` to `eyre` (#265)
54+
- Added `borsh` to `UnitVal` (#266)
55+
- Removed default init requirement on unsized list default init. (#267)
56+
- Added more `Align1` impls for tuples. (#268)
57+
- Added `star_frame_error` macro and custom error system (#271)
5558

5659
### Changed
5760

58-
- Replaced `eyre` with custom error system (#271)
61+
- Replaced `eyre` with custom error system (#271)
5962

6063
### Updated
6164

62-
- Updated solana dependencies (#270)
65+
- Updated solana dependencies (#270)
6366

6467
## [0.25.1] - 2025-09-11
6568

6669
### Fixed
6770

68-
- Improved performance of ProgramAccount discriminant validation (#260)
71+
- Improved performance of ProgramAccount discriminant validation (#260)
6972

7073
## [0.25.0] - 2025-09-11
7174

7275
### Fixed
7376

74-
- Significantly improved performance across the board (#247)
77+
- Significantly improved performance across the board (#247)
7578

7679
### Changed
7780

78-
- Updated `CpiAccountSet` to use native pinocchio instruction types (#247)
79-
- Updated `CpiBuilder` to take in InstructionData by value and a program argument instead of ctx,
80-
and `MakeCpi::cpi` is now infallible (#247)
81-
- Return data must be NoUninit instead of `BorshSerialize` (#247)
81+
- Updated `CpiAccountSet` to use native pinocchio instruction types (#247)
82+
- Updated `CpiBuilder` to take in InstructionData by value and a program argument instead of ctx,
83+
and `MakeCpi::cpi` is now infallible (#247)
84+
- Return data must be NoUninit instead of `BorshSerialize` (#247)
8285

8386
### Removed
8487

85-
- Program cache from the `Context` struct (#247)
88+
- Program cache from the `Context` struct (#247)
8689

8790
## [0.24.2] - 2025-09-06
8891

8992
### Fixed
9093

91-
- Updated star_frame version in template (#252)
94+
- Updated star_frame version in template (#252)
9295

9396
## [0.24.1] - 2025-09-04
9497

9598
### Fixed
9699

97-
- Remove unnecessary `'static` bound on `InitFn` (#244)
100+
- Remove unnecessary `'static` bound on `InitFn` (#244)
98101

99102
## [0.24.0] - 2025-09-04
100103

101104
### Added
102105

103-
- `BorshAccount` AccountSet (#225)
104-
- `UnsizedString` UnsizedType (#235)
105-
- `star_frame_instruction` macro (#199)
106-
- `zero_copy` attribute macro (#237)
107-
- CLI with project scaffolding (#227)
108-
- insert_all to map and set (#231)
109-
- Changelog tracking (#241)
106+
- `BorshAccount` AccountSet (#225)
107+
- `UnsizedString` UnsizedType (#235)
108+
- `star_frame_instruction` macro (#199)
109+
- `zero_copy` attribute macro (#237)
110+
- CLI with project scaffolding (#227)
111+
- insert_all to map and set (#231)
112+
- Changelog tracking (#241)
110113

111114
### Changed
112115

113-
- Bump workspace Rust version to 1.89.0 (#234)
114-
- Updated complex `CanInitAccount` implementations to use closures for init arg (#239)
116+
- Bump workspace Rust version to 1.89.0 (#234)
117+
- Updated complex `CanInitAccount` implementations to use closures for init arg (#239)
115118

116119
## [0.23.1] - 2025-08-28
117120

118121
### Added
119122

120-
- Additional documentation improvements (#223).
123+
- Additional documentation improvements (#223).
121124

122125
[unreleased]: https://github.com/staratlasmeta/star_frame/compare/v0.26.3...HEAD
123126
[0.26.3]: https://github.com/staratlasmeta/star_frame/compare/v0.26.2...v0.26.3

0 commit comments

Comments
 (0)