public SemVersion Update()

in src/Elastic.Transport/Extensions/SemVersion.cs [179:213]


	public SemVersion Update(int? major = null, int? minor = null, int? patch = null, string? prerelease = null, string? metadata = null) =>
		new(major ?? Major,
			minor ?? Minor,
			patch ?? Patch,
			prerelease ?? Prerelease,
			metadata ?? Metadata);

	/// <summary>
	/// Compares the current version to another version in a natural way (by component/part precedence).
	/// </summary>
	/// <param name="other">The <see cref="SemVersion"/> to compare to.</param>
	/// <returns><c>0</c> if both versions are equal, a positive number, if the other version is lower or a negative number if the other version is higher.</returns>
	public int CompareByPrecedence(SemVersion? other)
	{
		if (ReferenceEquals(other, null))
			return 1;

		var result = Major.CompareTo(other.Major);
		if (result != 0)
			return result;

		result = Minor.CompareTo(other.Minor);
		if (result != 0)
			return result;

		result = Patch.CompareTo(other.Patch);
		if (result != 0)
			return result;

		result = CompareComponent(Prerelease, other.Prerelease, true);
		if (result != 0)
			return result;

		return CompareComponent(Prerelease, other.Metadata, true);
	}