summaryrefslogtreecommitdiff
path: root/mesonbuild/cargo/version.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-06-03 23:28:55 +0200
committerDylan Baker <dylan@pnwbakers.com>2025-08-01 07:55:49 -0700
commit164c1284dac7b51c57ba6e013c4a9865c0315258 (patch)
tree439381abeb24389c6379a017a75ee2e13ddd3576 /mesonbuild/cargo/version.py
parent09e547fcf289463c5163d2b0fe17a2e2ddf92a33 (diff)
downloadmeson-164c1284dac7b51c57ba6e013c4a9865c0315258.tar.gz
cargo: create dataclasses for Cargo.lock
Start introducing a new simpler API for conversion of TypedDicts to dataclasses, and use it already for Cargo.lock. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/cargo/version.py')
-rw-r--r--mesonbuild/cargo/version.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/mesonbuild/cargo/version.py b/mesonbuild/cargo/version.py
index cde7a83a3..51ce79b04 100644
--- a/mesonbuild/cargo/version.py
+++ b/mesonbuild/cargo/version.py
@@ -7,6 +7,18 @@ from __future__ import annotations
import typing as T
+def api(version: str) -> str:
+ # x.y.z -> x
+ # 0.x.y -> 0.x
+ # 0.0.x -> 0
+ vers = version.split('.')
+ if int(vers[0]) != 0:
+ return vers[0]
+ elif len(vers) >= 2 and int(vers[1]) != 0:
+ return f'0.{vers[1]}'
+ return '0'
+
+
def convert(cargo_ver: str) -> T.List[str]:
"""Convert a Cargo compatible version into a Meson compatible one.