168 Commits

Author SHA1 Message Date
Lukas Wirth
2fcccbbe29 Publish 0.3.4 2025-10-23 17:10:05 +02:00
Lukas Wirth
1af327e78a Publish 0.3.3 2025-10-23 13:15:25 +02:00
Alex Butler
b1acd45fce Update changelog 2025-10-22 14:29:46 +01:00
Alex Butler
6ca3f3812a Mark replacen_1_ascii as unsafe 2025-10-22 14:29:46 +01:00
Alex Butler
25cb3f6c56 Optimise replacen 1-ascii when count >= len 2025-10-22 14:29:46 +01:00
Alex Butler
a2b3d25dbf Optimise replacen_smolstr for single ascii replace 2025-10-22 14:29:46 +01:00
Alex Butler
b4ce6529fa Add test from_buf_and_chars_size_hinted_heap & fix 2025-10-22 14:25:23 +01:00
Alex Butler
c9cd0324a7 Update changelog 2025-10-22 14:25:23 +01:00
Alex Butler
bc69b02574 Optimise to_{lower,upper}case_smolstr 2025-10-22 14:25:23 +01:00
Alex Butler
eabb248294 CI: Add TEST_BENCHES 2025-10-22 09:41:47 +02:00
Alex Butler
2cb99fb418 Only bench smol_str stuff 2025-10-22 09:41:47 +02:00
Alex Butler
09ecb46094 Add SmolStr vs String benchmarks 2025-10-22 09:41:47 +02:00
Alex Butler
f8612bc596 Update changelog 2025-09-22 21:07:17 +02:00
Alex Butler
a267e0905e Optimise to_ascii_{upper,lower}case_smolstr 2025-09-22 21:07:17 +02:00
james7132
4cdc1b1544 Use serde_core over serde 2025-09-22 10:40:39 +02:00
Laurențiu Nicola
b8324c50ef Merge pull request rust-analyzer/smol_str#99 from alexheretic/fix-lints
Fix lints / fix CI
2025-09-15 09:10:02 +03:00
Alex Butler
3e6863eeb1 Fix lints 2025-09-14 12:34:12 +01:00
Lukas Wirth
076e315d60 Publish 0.3.2 2024-10-23 22:56:02 +02:00
Lukas Wirth
037436ef16 Fix SmoLStrBuilder pushing null bytes on heap spill 2024-10-23 22:56:02 +02:00
Laurențiu Nicola
f120619912 Merge pull request rust-analyzer/smol_str#87 from alexheretic/changelog++
Add 0.2.2 changelog & fix lints
2024-09-03 10:50:34 +02:00
Alex Butler
b5d68d17eb Update CHANGELOG.md
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2024-09-03 09:47:53 +01:00
Alex Butler
5ca72343dc Add 0.2.2 changelog & fix lints 2024-09-03 09:21:42 +01:00
Lukas Wirth
5e0ab10e12 Add CHANGELOG.md 2024-09-03 10:03:51 +02:00
Lukas Wirth
6db8eda235 Publish 0.3.1 2024-09-03 09:46:26 +02:00
Lukas Wirth
4c0d45e59b Make SmolStrBuilder fields private 2024-09-03 09:46:26 +02:00
Lukas Wirth
e172e4ee25 Publish 0.3.0 2024-09-03 09:31:16 +02:00
Lukas Wirth
6216c05690 SmolStrBuilder::push 2024-09-03 09:28:34 +02:00
Lukas Wirth
cf33d6ddb5 Drop unstable__schema 2024-09-03 09:19:17 +02:00
Corvin Paul
bf431789d3 Add support for borsh 2024-09-03 09:19:17 +02:00
Lukas Wirth
aa63570498 Expose SmolStrBuilder 2024-09-03 09:14:56 +02:00
Lukas Wirth
a2163274c4 Add more trait impls 2024-09-03 07:51:17 +02:00
Lukas Wirth
6b0d9ffdb5 Various cleanups 2024-09-03 07:51:17 +02:00
Lukas Wirth
28b9403e15 Bump deps 2024-09-02 20:42:14 +02:00
Rob Ede
c1327b21ba Migrate CI to actions-rust-lang/setup-rust-toolchain 2024-06-01 10:06:49 +02:00
Rob Ede
5146c928fd Document crate feature guards 2024-06-01 10:06:30 +02:00
Lukas Wirth
7cb89f14c6 Publish 0.2.2 2024-05-14 10:15:12 +02:00
Lukas Wirth
89a555b9b5 Document unsafe blocks 2024-05-14 10:09:33 +02:00
Alex Butler
860343ab85 Add StrExt::replace_smolstr, replacen_smolstr 2024-04-18 10:08:01 +02:00
Arpad Borsos
29f5ba6318 Add PartialEq shortcut for ptr_eq strings
This first compares the `Repr` before falling back to actually comparing the raw `as_str` itself.
In some micro-benchmarks, this speeds up inline and heap string comparisons when equal by ~70%.

There is a tiny hit in the non-equal case however. It is also noteworthy that the assembly generated for `Repr` is horrible,
and looks like its above the inlining threshold now.
2024-02-08 22:42:21 +01:00
Alex Butler
da4eb11ce9 Add must_use to StrExt methods 2024-02-08 22:41:25 +01:00
Alex Butler
79bb5e39b5 Add StrExt, to_lowercase_smolstr & friends 2024-02-08 14:43:17 +01:00
Anton Sol
2235939297 reformat 2024-01-31 18:59:27 +01:00
Anton Sol
257ece4d73 remove nightly benchmark feature 2024-01-31 18:59:27 +01:00
Anton Sol
1f338f7d8c Manually impl clone 2024-01-31 18:59:27 +01:00
Anton Sol
6df2f06299 fix clone regression
test bench::bench_derive_clone ... bench:     454,318 ns/iter (+/- 11,401)
test bench::bench_match_clone  ... bench:     183,570 ns/iter (+/- 10,652)
test bench::bench_new_clone    ... bench:     177,907 ns/iter (+/- 2,234)
2024-01-31 18:59:27 +01:00
Anton Sol
471f1b6137 add benchmarks
This regressed from a previous attempt.
The worst of the old results were in the range 450.000

current:

test bench::bench_derive_clone ... bench:   1,653,247 ns/iter (+/- 32,781)
test bench::bench_match_clone  ... bench:   1,716,482 ns/iter (+/- 34,192)
test bench::bench_new_clone    ... bench:   1,717,985 ns/iter (+/- 52,137)
2024-01-31 18:59:27 +01:00
Lukas Wirth
13cac19135 Publish 0.2.1 2024-01-16 10:58:18 +01:00
novacrazy
ebb96d259d Fix new_inline codegen 2024-01-16 10:53:13 +01:00
novacrazy
5559e23a50 Cleanup 2024-01-16 10:53:13 +01:00
novacrazy
39257f6b05 Add Writer and ToSmolStr 2024-01-16 09:18:52 +01:00