John Turner
86e2b4559a
derive PartialEq and Eq for Atom and Atom related types
2025-11-23 05:18:30 +00:00
John Turner
5be1e5c37a
derive Hash for Atom and similar types
2025-11-23 03:30:37 +00:00
John Turner
f8149b43d4
rearrange modules
2025-11-23 02:49:53 +00:00
John Turner
e9603ce62f
represent 4th variant of slots, and disallow empty primary slot names
2025-11-22 01:03:14 +00:00
John Turner
fb69d82e6f
build-id must not start with zero
2025-11-21 04:33:55 +00:00
John Turner
3bce987993
format version build-id
2025-11-20 23:50:47 +00:00
John Turner
0d40608404
compare versions as strings rather than parsing them to ints
...
Parsing version numbers to u64s could cause an panic on int overflow
with very large versions.
2025-11-19 05:04:40 +00:00
John Turner
16fdd27e9a
compare letters before suffixes, and having a letter is greater than none
2025-11-19 01:17:18 +00:00
John Turner
c75a38f615
allow slot to be only :* := :slot/sub= or :slot
2025-11-18 04:15:53 +00:00
John Turner
2dc5df6112
support portage build-id extension
2025-11-18 03:21:44 +00:00
John Turner
78398b7ebe
support ::repo syntax
2025-11-18 01:44:45 +00:00
John Turner
db02762ee1
version wildcard comes after the version expression
2025-11-18 01:27:29 +00:00
John Turner
0436fbc770
fix clippy lints
2025-11-15 01:55:19 +00:00
John Turner
dfaad015b9
impl conversion methods for Atom and Cp
2025-11-15 00:10:55 +00:00
John Turner
9c7d38f82c
having more components, even if zeros, make an atom greater
2025-11-14 23:16:25 +00:00
John Turner
5a793bebe8
check if a OR b has leading zeros, and if so, strip and do ascii cmp
2025-11-14 23:15:01 +00:00
John Turner
07d1823f0f
compare version letter in version cmp algo
2025-11-14 23:13:19 +00:00
John Turner
29af7572a0
remove leftover dbgs!
2025-11-14 22:27:58 +00:00
John Turner
36bdbbd8bc
allow Cpv type to have a slot
2025-11-13 19:57:28 +00:00
John Turner
0448a52926
impl Cp type
2025-11-13 19:49:22 +00:00
John Turner
1882ce3137
impl Cpv type
2025-11-13 18:03:34 +00:00
John Turner
f4a45717d2
impl version comparison algorithm
2025-11-13 18:00:15 +00:00
John Turner
b147d967d4
put version and version operator in the same Option in the Atom struct
...
All atoms must either have a version with a version operator, or have
no version and no version operator. Putting these in the same Option
helps encode that into the type system.
2025-11-08 22:13:14 +00:00
John Turner
b54616a6dd
impl Parseable trait
2025-10-28 09:47:41 +00:00
John Turner
ee1d15f983
use deref getters where needed
2025-10-27 22:09:30 -04:00
John Turner
990aa475ab
fix lints
2025-10-26 01:52:50 -04:00
John Turner
4d69986e18
impl fmt::Display for Atom
2025-10-26 01:23:45 -04:00
John Turner
680ead0504
support "=" version operator
2025-10-25 01:19:35 -04:00
John Turner
d75266f967
support atoms with empty slot
2025-10-24 21:32:41 -04:00
John Turner
2e7d8cfbb9
impl atom parsing
2025-10-23 21:19:47 -04:00