pub fn parse_semver(version: &str) -> Option<SemVer>Expand description
Parses a version string into a SemVer struct.
Validates SemVer 2.0.0 format (with optional leading ‘v’) and extracts major, minor, and patch numbers while discarding any prerelease/build metadata.
§Arguments
version- Version string to parse (e.g., “1.2.3”, “v0.4.0”, “v1.0.0-beta.1”).
§Example
use git_claw::core::semver::{parse_semver, SemVer};
let v = parse_semver("v1.2.3").unwrap();
assert_eq!(v, SemVer { major: 1, minor: 2, patch: 3, has_v_prefix: true });
let v2 = parse_semver("0.1.0").unwrap();
assert_eq!(v2, SemVer { major: 0, minor: 1, patch: 0, has_v_prefix: false });
assert!(parse_semver("invalid").is_none());