@@ -895,6 +895,9 @@ idioms and design patterns are used in this release.
895
895
- A new telemetry API is also in this release, which makes it easy to measure and report
896
896
performance metrics in a memory access and CPU performant way. This is built for the
897
897
` r3bl_tui ` main event loop (which is a very hot loop).
898
+ - ` new_style! ` (decl macro) replaces ` tui_style! ` (proc macro). ` tui_color! ` also replaces
899
+ ` color! ` . You are not expected to work with ` TuiStyle ` or ` TuiColor ` directly. Instead,
900
+ you are expected to work with these decl macros.
898
901
899
902
These videos have been an inspiration for many of these changes:
900
903
- [ Data oriented design] ( https://youtu.be/WwkuAqObplU )
@@ -921,6 +924,9 @@ Removed:
921
924
like ` ch() ` , ` usize() ` , ` f64() ` , etc.
922
925
923
926
Changed:
927
+ - In ` decl_macros/macros.rs ` change the semantics of the ` with! ` macro, so that the
928
+ ` $id ` is only contained to the ` run ` block and doesn't get added to the caller's scope
929
+ / block.
924
930
- Add new declarative macros to mimic ` .join(..) ` method on ` Vec ` and ` String ` . This
925
931
makes it easier to join a collection of items into a string, or a collection of
926
932
strings into a string with (` join! ` & ` join_with_index! ` ) or without allocations
@@ -968,6 +974,14 @@ Changed:
968
974
- Replace the use of ` bool ` with meaningful enums to enhance code readability.
969
975
970
976
- Added:
977
+ - [ Archive] ( #archived-2025-03-11 ) the ` tui_style! ` proc macro. Replace it with an easier
978
+ to use decl macro ` new_style! ` . This allows the ` r3bl_macro ` crate to be removed from
979
+ the workspace, and all the crates in it. ` new_style! ` makes it a breeze to work with
980
+ ` TuiStyle ` struct, so there is no need to manipulate it directly except if you need
981
+ to.
982
+ - Expand the functionality of ` tui_color! ` and rename it from ` color! ` . This macro makes
983
+ it trivial to create different variants of ` TuiColor ` without having to work with the
984
+ complex variants of the struct.
971
985
- Add a new test fixture ` temp_dir::create_temp_dir() ` to make it easy to create
972
986
temporary directories for tests. Any temporary directories created are automatically
973
987
cleaned up after the test is done. The ` TempDir ` struct implements many traits that
@@ -1112,50 +1126,6 @@ in the real world.
1112
1126
- Added:
1113
1127
- Initial support structs for use by ` r3bl-base ` and ` r3bl-cmdr ` .
1114
1128
1115
- ## ` r3bl_macro `
1116
-
1117
- ### v_next_release_r3bl_macro
1118
-
1119
- This release contains changes that are part of optimizing memory allocation to increase
1120
- performance, and ensure that performance is stable over time. ` ch_unit.rs ` is also heavily
1121
- refactored and the entire codebase updated so that a the more ergonomic ` ChUnit ` API is
1122
- now used throughout the codebase. No new functionality is added in this release.
1123
-
1124
- - Updated:
1125
- - Use the latest Rust 2024 edition.
1126
-
1127
- - Changed:
1128
- - Change the semantics of the ` with! ` macro, so that the ` $id ` is only contained to the ` run ` block and doesn't
1129
- get added to the caller's scope / block.
1130
-
1131
- ### v0.10.0 (2024-10-20)
1132
-
1133
- This is a major release that does not include any new functionality, but is a radical
1134
- reorganization & rename of the crate, it used to be
1135
- [ ` r3bl_rs_utils_macro ` ] ( #rename-to-r3bl_macro ) .
1136
-
1137
- The ` r3bl-open-core ` repo was started in ` 2022-02-23 ` , about 1 year, 7 months, and 11 days
1138
- ago, (which you can get using `curl https://api.github.com/repos/r3bl-org/r3bl-open-core |
1139
- jq .created_at`). We have learned many lessons since then after writing about 125K lines
1140
- of Rust code.
1141
-
1142
- And it is time to pay down the accrued technical debt, to ensure that the codebase is
1143
- easier to maintain and understand, and easier to add new features to in the future. The
1144
- separation of concerns is now much clearer, and they reflect how the functionality is used
1145
- in the real world.
1146
-
1147
- This [ PR] ( https://github.com/r3bl-org/r3bl-open-core/pull/360 ) contains all the changes.
1148
-
1149
- Changed:
1150
- - The name of this repo used to be [ ` r3bl_rs_utils_macro ` ] ( #rename-to-r3bl_macro ) .
1151
- - The modules and functions in this crate which are used (by other crates in this monorepo)
1152
- are left unchanged. Only the unused modules and functions are moved to the
1153
- [ ` r3bl-open-core-archive ` ] ( https://github.com/r3bl-open-core-archive ) repo.
1154
-
1155
- Deleted:
1156
- - Move all the unused modules and functions to the
1157
- [ ` r3bl-open-core-archive ` ] ( https://github.com/r3bl-open-core-archive ) repo.
1158
-
1159
1129
## ` r3bl_test_fixtures `
1160
1130
1161
1131
### v_next_release_r3bl_test_fixtures
@@ -1732,6 +1702,47 @@ the `ok!()` macro.
1732
1702
1733
1703
<!-- Archived section -->
1734
1704
1705
+ ## ` r3bl_macro `
1706
+
1707
+ ### Archived (2025-03-11)
1708
+
1709
+ The only purpose for having this crate is the requirements for Rust to have procedural
1710
+ macros be in a separate crate. Proc macros also increase the build time. For this reason
1711
+ we have rewritten the ` tui_style! ` macro as a declarative macro in the ` r3bl_core ` crate
1712
+ called ` new_style! ` . And are archiving this crate.
1713
+
1714
+ This crate used to be called ` r3bl_rs_utils_macro ` . It was renamed to ` r3bl_macro ` in
1715
+ late 2024. And in early 2025, it is being archived.
1716
+
1717
+ ### v0.10.0 (2024-10-20)
1718
+
1719
+ This is a major release that does not include any new functionality, but is a radical
1720
+ reorganization & rename of the crate, it used to be
1721
+ [ ` r3bl_rs_utils_macro ` ] ( #rename-to-r3bl_macro ) .
1722
+
1723
+ The ` r3bl-open-core ` repo was started in ` 2022-02-23 ` , about 1 year, 7 months, and 11 days
1724
+ ago, (which you can get using `curl https://api.github.com/repos/r3bl-org/r3bl-open-core |
1725
+ jq .created_at`). We have learned many lessons since then after writing about 125K lines
1726
+ of Rust code.
1727
+
1728
+ And it is time to pay down the accrued technical debt, to ensure that the codebase is
1729
+ easier to maintain and understand, and easier to add new features to in the future. The
1730
+ separation of concerns is now much clearer, and they reflect how the functionality is used
1731
+ in the real world.
1732
+
1733
+ This [ PR] ( https://github.com/r3bl-org/r3bl-open-core/pull/360 ) contains all the changes.
1734
+
1735
+ Changed:
1736
+ - The name of this repo used to be [ ` r3bl_rs_utils_macro ` ] ( #rename-to-r3bl_macro ) .
1737
+ - The modules and functions in this crate which are used (by other crates in this monorepo)
1738
+ are left unchanged. Only the unused modules and functions are moved to the
1739
+ [ ` r3bl-open-core-archive ` ] ( https://github.com/r3bl-open-core-archive ) repo.
1740
+
1741
+ Deleted:
1742
+ - Move all the unused modules and functions to the
1743
+ [ ` r3bl-open-core-archive ` ] ( https://github.com/r3bl-open-core-archive ) repo.
1744
+
1745
+
1735
1746
## ` r3bl_simple_logger `
1736
1747
1737
1748
### Archived (2024-09-27)
0 commit comments