Files
git.stella-ops.org/local-nugets/semver/2.3.0/lib/netstandard2.0/Semver.xml
StellaOps Bot a7f3c7869a nuget updates
2025-11-22 14:02:06 +02:00

2904 lines
184 KiB
XML

<?xml version="1.0"?>
<doc>
<assembly>
<name>Semver</name>
</assembly>
<members>
<member name="T:Semver.Comparers.ISemVersionComparer">
<summary>
An interface that combines equality and order comparison for the <see cref="T:Semver.SemVersion"/>
class.
</summary>
<remarks>
This interface provides a type for the <see cref="P:Semver.SemVersion.PrecedenceComparer"/> and
<see cref="P:Semver.SemVersion.SortOrderComparer"/> so that separate properties aren't needed for the
<see cref="T:System.Collections.Generic.IEqualityComparer`1"/> and <see cref="T:System.Collections.Generic.IComparer`1"/> of <see cref="T:Semver.SemVersion"/>.
</remarks>
</member>
<member name="T:Semver.Comparers.UnbrokenSemVersionRangeComparer">
<summary>
Compare <see cref="T:Semver.UnbrokenSemVersionRange"/> by the left bound and then by the reversed
right bound. Thus wider ranges sort before narrower ones. Finally, sort ranges including
prerelease before those not including prerelease.
</summary>
<remarks>This order is important to the removal of fully contained ranges from
<see cref="T:Semver.SemVersionRange"/> since it sorts the ranges and then checks earlier ranges to
see if they contain later ranges. Thus, more inclusive ranges need to come first so that
the ranges they contain will be removed. Note that the <see cref="T:Semver.SemVersionRange"/> API
will never expose this order exactly because contained ranges will not be included in the
final <see cref="T:Semver.SemVersionRange"/>.</remarks>
</member>
<member name="T:Semver.MetadataIdentifier">
<summary>
An individual metadata identifier for a semantic version.
</summary>
<remarks>
<para>The metadata for a semantic version is composed of dot ('<c>.</c>') separated identifiers.
A valid identifier is a non-empty string of ASCII alphanumeric and hyphen characters
(<c>[0-9A-Za-z-]</c>). Metadata identifiers are compared lexically in ASCII sort order.</para>
<para>Because <see cref="T:Semver.MetadataIdentifier"/> is a struct, the default value is a
<see cref="T:Semver.MetadataIdentifier"/> with a <see langword="null"/> value. However, the
<see cref="N:Semver"/> namespace types do not accept and will not return such a
<see cref="T:Semver.MetadataIdentifier"/>.</para>
<para>Invalid metadata identifiers including arbitrary Unicode characters and empty string can
currently be produced by the <see cref="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32,System.String,System.String)"/>
constructor. Such identifiers are compared via an ordinal string comparision.</para>
</remarks>
</member>
<member name="P:Semver.MetadataIdentifier.Value">
<summary>
The string value of the metadata identifier.
</summary>
<value>The string value of this metadata identifier or <see langword="null"/> if this is
a default <see cref="T:Semver.MetadataIdentifier"/>.</value>
</member>
<member name="M:Semver.MetadataIdentifier.CreateLoose(System.String)">
<summary>
Construct a potentially invalid <see cref="T:Semver.MetadataIdentifier"/>.
</summary>
<exception cref="T:System.ArgumentNullException">The <paramref name="value"/> parameter is <see langword="null"/>.</exception>
<remarks>This should only be used by the <see cref="T:Semver.SemVersion"/> constructor that
still accepts illegal values.</remarks>
</member>
<member name="M:Semver.MetadataIdentifier.CreateUnsafe(System.String)">
<summary>
Constructs a <see cref="T:Semver.MetadataIdentifier"/> without checking that any of the invariants
hold. Used by the parser for performance.
</summary>
<remarks>This is a create method rather than a constructor to clearly indicate uses
of it. The other constructors have not been hidden behind create methods because only
constructors are visible to the package users. So they see a class consistently
using constructors without any create methods.</remarks>
</member>
<member name="M:Semver.MetadataIdentifier.#ctor(System.String,Semver.Utility.UnsafeOverload)">
<summary>
Private constructor used by <see cref="M:Semver.MetadataIdentifier.CreateUnsafe(System.String)"/>.
</summary>
<param name="value">The value for the identifier. Not validated.</param>
<param name="_">Unused parameter that differentiates this from the
constructor that performs validation.</param>
</member>
<member name="M:Semver.MetadataIdentifier.#ctor(System.String)">
<summary>
Constructs a valid <see cref="T:Semver.MetadataIdentifier"/>.
</summary>
<exception cref="T:System.ArgumentNullException">The <paramref name="value"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">The <paramref name="value"/> is empty or contains invalid characters
(i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
</member>
<member name="M:Semver.MetadataIdentifier.#ctor(System.String,System.String)">
<summary>
Constructs a valid <see cref="T:Semver.MetadataIdentifier"/>.
</summary>
<remarks>
Internal constructor allows changing the parameter name to enable methods using this
as part of their metadata identifier validation to match the parameter name to their
parameter name.
</remarks>
</member>
<member name="M:Semver.MetadataIdentifier.Equals(Semver.MetadataIdentifier)">
<summary>
Determines whether two identifiers are equal.
</summary>
<returns><see langword="true"/> if <paramref name="value"/> is equal to the this identifier;
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.MetadataIdentifier.Equals(System.Object)">
<summary>Determines whether the given object is equal to this identifier.</summary>
<returns><see langword="true"/> if <paramref name="value"/> is equal to the this identifier;
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.MetadataIdentifier.GetHashCode">
<summary>Gets a hash code for this identifier.</summary>
<returns>A hash code for this identifier.</returns>
</member>
<member name="M:Semver.MetadataIdentifier.op_Equality(Semver.MetadataIdentifier,Semver.MetadataIdentifier)">
<summary>
Determines whether two identifiers are equal.
</summary>
<returns><see langword="true"/> if the value of <paramref name="left"/> is the same as
the value of <paramref name="right"/>; otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.MetadataIdentifier.op_Inequality(Semver.MetadataIdentifier,Semver.MetadataIdentifier)">
<summary>
Determines whether two identifiers are <em>not</em> equal.
</summary>
<returns><see langword="true"/> if the value of <paramref name="left"/> is different
from the value of <paramref name="right"/>; otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.MetadataIdentifier.CompareTo(Semver.MetadataIdentifier)">
<summary>
Compares two identifiers and indicates whether this instance precedes, follows, or is
equal to the other in sort order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to
<paramref name="value"/> in sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>This instance precedes <paramref name="value"/>.</description>
</item>
<item>
<term>0</term>
<description>This instance is equal to <paramref name="value"/>.</description>
</item>
<item>
<term>1</term>
<description>This instance follows <paramref name="value"/>.</description>
</item>
</list>
</returns>
<remarks>Identifiers are compared lexically in ASCII sort order. Invalid identifiers are
compared via an ordinal string comparision.</remarks>
</member>
<member name="M:Semver.MetadataIdentifier.CompareTo(System.Object)">
<summary>
Compares this identifier to an <see cref="T:System.Object"/> and indicates whether this instance
precedes, follows, or is equal to the object in sort order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to
<paramref name="value"/> in sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>This instance precedes <paramref name="value"/>.</description>
</item>
<item>
<term>0</term>
<description>This instance is equal to <paramref name="value"/>.</description>
</item>
<item>
<term>1</term>
<description>This instance follows <paramref name="value"/> or <paramref name="value"/>
is <see langword="null"/>.</description>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:Semver.MetadataIdentifier"/>.</exception>
<remarks>Identifiers are compared lexically in ASCII sort order. Invalid identifiers are
compared via an ordinal string comparision.</remarks>
</member>
<member name="M:Semver.MetadataIdentifier.op_Implicit(Semver.MetadataIdentifier)~System.String">
<summary>
Converts this identifier into an equivalent string value.
</summary>
<returns>The string value of this identifier or <see langword="null"/> if this is
a default <see cref="T:Semver.MetadataIdentifier"/>.</returns>
</member>
<member name="M:Semver.MetadataIdentifier.ToString">
<summary>
Converts this identifier into an equivalent string value.
</summary>
<returns>The string value of this identifier or <see langword="null"/> if this is
a default <see cref="T:Semver.MetadataIdentifier"/></returns>
</member>
<member name="M:Semver.Parsing.GeneralRangeParser.ParseOptionalSpaces(Semver.Utility.StringSegment@,System.Exception)">
<summary>
Parse optional spaces from the beginning of the segment.
</summary>
</member>
<member name="M:Semver.Parsing.GeneralRangeParser.ParseOptionalWhitespace(Semver.Utility.StringSegment@)">
<summary>
Parse optional whitespace from the beginning of the segment.
</summary>
</member>
<member name="M:Semver.Parsing.GeneralRangeParser.ParseVersion(Semver.Utility.StringSegment@,Semver.SemVersionRangeOptions,Semver.Parsing.SemVersionParsingOptions,System.Exception,System.Int32,Semver.SemVersion@,Semver.Parsing.WildcardVersion@)">
<summary>
Parse a version number from the beginning of the segment.
</summary>
</member>
<member name="M:Semver.Parsing.NpmRangeParser.ParseComparison(Semver.Utility.StringSegment@,Semver.SemVersionRangeOptions,System.Boolean,System.Exception,System.Int32,Semver.Ranges.LeftBoundedRange@,Semver.Ranges.RightBoundedRange@)">
<summary>
Parse a comparison from the beginning of the segment.
</summary>
<remarks>
<para>Must have leading whitespace removed. Will consume trailing whitespace.</para>
<para>When applying caret, tilde, or wildcards to versions already at
<see cref="F:System.Int32.MaxValue"/> there are ranges that would be equivalent to being able to
increment beyond max value. However, for simplicity, this is treated as an error instead.
This also makes sense given that these ranges would logically include versions valid
according to the spec that can't be represented by this library due to the limitations
of <see cref="T:System.Int32"/>. Finally, if these equivalent ranges were supported they would also
need special case handling in the <see cref="M:Semver.UnbrokenSemVersionRange.ToString"/> method.
</para></remarks>
</member>
<member name="M:Semver.Parsing.NpmRangeParser.GreaterThan(System.Boolean,System.Exception,Semver.Ranges.LeftBoundedRange@,Semver.Utility.StringSegment,Semver.SemVersion,Semver.Parsing.WildcardVersion)">
<summary>
The greater than operator taking into account the wildcard.
</summary>
</member>
<member name="M:Semver.Parsing.NpmRangeParser.LessThan(Semver.Ranges.RightBoundedRange@,Semver.SemVersion,Semver.Parsing.WildcardVersion)">
<summary>
The less than operator taking into account the wildcard.
</summary>
</member>
<member name="T:Semver.Parsing.SemVersionParser">
<summary>
Parsing for <see cref="T:Semver.SemVersion"/>
</summary>
<remarks>The new parsing code was complex enough that is made sense to break out into its
own class.</remarks>
</member>
<member name="M:Semver.Parsing.SemVersionParser.Parse(System.String,Semver.SemVersionStyles,System.Exception,System.Int32,Semver.SemVersion@)">
<summary>
The internal method that all parsing is based on. Because this is called by both
<see cref="M:Semver.SemVersion.Parse(System.String,Semver.SemVersionStyles,System.Int32)"/> and
<see cref="M:Semver.SemVersion.TryParse(System.String,Semver.SemVersionStyles,Semver.SemVersion@,System.Int32)"/>
it does not throw exceptions, but instead returns the exception that should be thrown
by the parse method. For performance when used from try parse, all exception construction
and message formatting can be avoided by passing in an exception which will be returned
when parsing fails.
</summary>
<remarks>This does not validate the <paramref name="style"/> or <paramref name="maxLength"/>
parameter values. That must be done in the calling method.</remarks>
</member>
<member name="M:Semver.Parsing.SemVersionParser.Parse(Semver.Utility.StringSegment,Semver.SemVersionStyles,Semver.Parsing.SemVersionParsingOptions,System.Exception,System.Int32,Semver.SemVersion@,Semver.Parsing.WildcardVersion@)">
<summary>
An internal method that is used when parsing versions from ranges. Because this is
called by both
<see cref="M:Semver.SemVersionRange.Parse(System.String,Semver.SemVersionRangeOptions,System.Int32)"/> and
<see cref="M:Semver.SemVersionRange.TryParse(System.String,Semver.SemVersionRangeOptions,Semver.SemVersionRange@,System.Int32)"/>
it does not throw exceptions, but instead returns the exception that should be thrown
by the parse method. For performance when used from try parse, all exception construction
and message formatting can be avoided by passing in an exception which will be returned
when parsing fails.
</summary>
<remarks>This does not validate the <paramref name="style"/> or <paramref name="maxLength"/>
parameter values. That must be done in the calling method.</remarks>
</member>
<member name="T:Semver.Parsing.SemVersionParsingOptions">
<summary>
Options beyond the <see cref="T:Semver.SemVersionStyles"/> for version parsing used by range parsing.
</summary>
</member>
<member name="F:Semver.Parsing.SemVersionParsingOptions.None">
<summary>
No special parsing options. Used when parsing versions outside of ranges.
</summary>
</member>
<member name="P:Semver.Parsing.SemVersionParsingOptions.AllowWildcardMajorMinorPatch">
<summary>
Allow wildcards as defined by <see cref="P:Semver.Parsing.SemVersionParsingOptions.IsWildcard"/> in the major, minor, and patch
version numbers.
</summary>
</member>
<member name="P:Semver.Parsing.SemVersionParsingOptions.AllowWildcardPrerelease">
<summary>
Allow a wildcard as defined by <see cref="P:Semver.Parsing.SemVersionParsingOptions.IsWildcard"/> as the final prerelease identifier.
</summary>
</member>
<member name="P:Semver.Parsing.SemVersionParsingOptions.MissingVersionsAreWildcards">
<summary>
Whether missing minor and patch version numbers allowed by the optional minor and patch
options count as being wildcard version numbers.
</summary>
</member>
<member name="P:Semver.Parsing.SemVersionParsingOptions.IsWildcard">
<summary>
Determines whether any given character is a wildcard character.
</summary>
</member>
<member name="F:Semver.Parsing.StandardOperator.Tilde">
<summary>
Approximately equivalent to version. Allows patch updates.
</summary>
</member>
<member name="F:Semver.Parsing.StandardOperator.Caret">
<summary>
Compatible with version. Allows minor and patch updates.
</summary>
</member>
<member name="M:Semver.Parsing.StandardRangeParser.ParseComparison(Semver.Utility.StringSegment@,Semver.SemVersionRangeOptions,System.Boolean@,System.Exception,System.Int32,Semver.Ranges.LeftBoundedRange@,Semver.Ranges.RightBoundedRange@)">
<summary>
Parse a comparison from the beginning of the segment.
</summary>
<remarks>
<para>Must have leading whitespace removed. Will consume trailing whitespace.</para>
<para>When applying caret, tilde, or wildcards to versions already at
<see cref="F:System.Int32.MaxValue"/> there are ranges that would be equivalent to being able to
increment beyond max value. However, for simplicity, this is treated as an error instead.
This also makes sense given that these ranges would logically include versions valid
according to the spec that can't be represented by this library due to the limitations
of <see cref="T:System.Int32"/>. Finally, if these equivalent ranges were supported they would also
need special case handling in the <see cref="M:Semver.UnbrokenSemVersionRange.ToString"/> method.
</para></remarks>
</member>
<member name="M:Semver.Parsing.WildcardVersionExtensions.HasOption(Semver.Parsing.WildcardVersion,Semver.Parsing.WildcardVersion)">
<summary>
The <see cref="M:System.Enum.HasFlag(System.Enum)"/> method is surprisingly slow. This provides
a fast alternative for the <see cref="T:Semver.Parsing.WildcardVersion"/> enum.
</summary>
</member>
<member name="M:Semver.Parsing.WildcardVersionExtensions.RemoveOption(Semver.Parsing.WildcardVersion@,Semver.Parsing.WildcardVersion)">
<summary>
Remove a flag from a <see cref="T:Semver.Parsing.WildcardVersion"/>.
</summary>
</member>
<member name="T:Semver.PrereleaseIdentifier">
<summary>
An individual prerelease identifier for a semantic version.
</summary>
<remarks>
<para>The prerelease portion of a semantic version is composed of dot ('<c>.</c>') separated identifiers.
A prerelease identifier is either an alphanumeric or numeric identifier. A valid numeric
identifier is composed of ASCII digits (<c>[0-9]</c>) without leading zeros. A valid
alphanumeric identifier is a non-empty string of ASCII alphanumeric and hyphen characters
(<c>[0-9A-Za-z-]</c>) with at least one non-digit character. Prerelease identifiers are
compared first by whether they are numeric or alphanumeric. Numeric identifiers have lower
precedence than alphanumeric identifiers. Numeric identifiers are compared to each other
numerically. Alphanumeric identifiers are compared to each other lexically in ASCII sort
order.</para>
<para>Because <see cref="T:Semver.PrereleaseIdentifier"/> is a struct, the default value is a
<see cref="T:Semver.PrereleaseIdentifier"/> with a <see langword="null"/> value. However, the
<see cref="N:Semver"/> namespace types do not accept and will not return such a
<see cref="T:Semver.PrereleaseIdentifier"/>.</para>
<para>Invalid prerelease identifiers including arbitrary Unicode characters, empty string,
and numeric identifiers with leading zero can currently be produced by the
<see cref="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32,System.String,System.String)"/> constructor and the obsolete
<see cref="M:Semver.SemVersion.Parse(System.String,System.Boolean)"/> and
<see cref="M:Semver.SemVersion.TryParse(System.String,Semver.SemVersion@,System.Boolean)"/> methods. Such alphanumeric
identifiers are compared via an ordinal string comparision. Numeric identifiers with
leading zeros are considered equal (e.g. '<c>15</c>' is equal to '<c>015</c>').
</para>
</remarks>
</member>
<member name="P:Semver.PrereleaseIdentifier.Value">
<summary>
The string value of the prerelease identifier even if it is a numeric identifier.
</summary>
<value>The string value of this prerelease identifier even if it is a numeric identifier
or <see langword="null"/> if this is a default <see cref="T:Semver.PrereleaseIdentifier"/>.</value>
<remarks>Invalid numeric prerelease identifiers with leading zeros will have a string
value including the leading zeros. This can be used to distinguish invalid numeric
identifiers with different numbers of leading zeros.</remarks>
</member>
<member name="P:Semver.PrereleaseIdentifier.NumericValue">
<summary>
The numeric value of the prerelease identifier if it is a numeric identifier, otherwise
<see langword="null"/>.
</summary>
<value>The numeric value of the prerelease identifier if it is a numeric identifier,
otherwise <see langword="null"/>.</value>
<remarks>The numeric value of a prerelease identifier will never be negative.</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.CreateLoose(System.String)">
<summary>
Construct a potentially invalid <see cref="T:Semver.PrereleaseIdentifier"/>.
</summary>
<exception cref="T:System.ArgumentNullException">The <paramref name="value"/> parameter is <see langword="null"/>.</exception>
<remarks>This should be used only by the <see cref="T:Semver.SemVersion"/> constructor that
still accepts illegal values.</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.CreateUnsafe(System.String,System.Nullable{System.Int32})">
<summary>
Construct a <see cref="T:Semver.PrereleaseIdentifier"/> without checking that any of the invariants
hold. Used by the parser for performance.
</summary>
<remarks>This is a create method rather than a constructor to clearly indicate uses
of it. The other constructors have not been hidden behind create methods because only
constructors are visible to the package users. So they see a class consistently
using constructors without any create methods.</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.#ctor(System.String,System.Nullable{System.Int32})">
<summary>
Private constructor used by <see cref="M:Semver.PrereleaseIdentifier.CreateUnsafe(System.String,System.Nullable{System.Int32})"/>.
</summary>
</member>
<member name="M:Semver.PrereleaseIdentifier.#ctor(System.String,System.Boolean)">
<summary>
Constructs a valid <see cref="T:Semver.PrereleaseIdentifier"/>.
</summary>
<param name="value">The string value of this prerelease identifier.</param>
<param name="allowLeadingZeros">Whether to allow leading zeros in the <paramref name="value"/>
parameter. If <see langword="true"/>, leading zeros will be allowed on numeric identifiers
but will be removed.</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="value"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">The <paramref name="value"/> is empty or contains invalid characters
(i.e. characters that are not ASCII alphanumerics or hyphens) or has leading zeros for
a numeric identifier when <paramref name="allowLeadingZeros"/> is <see langword="false"/>.</exception>
<exception cref="T:System.OverflowException">The numeric identifier value is too large for <see cref="T:System.Int32"/>.</exception>
<remarks>Because a valid numeric identifier does not have leading zeros, this constructor
will never create a <see cref="T:Semver.PrereleaseIdentifier"/> with leading zeros even if
<paramref name="allowLeadingZeros"/> is <see langword="true"/>. Any leading zeros will
be removed.</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.#ctor(System.String,System.Boolean,System.String)">
<summary>
Constructs a valid <see cref="T:Semver.PrereleaseIdentifier"/>.
</summary>
<remarks>
Internal constructor allows changing the parameter name to enable methods using this
as part of their prerelease identifier validation to match the parameter name to their
parameter name.
</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.#ctor(System.Int32)">
<summary>
Construct a valid numeric <see cref="T:Semver.PrereleaseIdentifier"/> from an integer value.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="value"/> is negative.</exception>
<param name="value">The non-negative value of this identifier.</param>
</member>
<member name="M:Semver.PrereleaseIdentifier.Equals(Semver.PrereleaseIdentifier)">
<summary>
Determines whether two identifiers are equal.
</summary>
<returns><see langword="true"/> if <paramref name="value"/> is equal to the this identifier;
otherwise <see langword="false"/>.</returns>
<remarks>Numeric identifiers with leading zeros are considered equal (e.g. '<c>15</c>'
is equal to '<c>015</c>').</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.Equals(System.Object)">
<summary>Determines whether the given object is equal to this identifier.</summary>
<returns><see langword="true"/> if <paramref name="value"/> is equal to the this identifier;
otherwise <see langword="false"/>.</returns>
<remarks>Numeric identifiers with leading zeros are considered equal (e.g. '<c>15</c>'
is equal to '<c>015</c>').</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.GetHashCode">
<summary>Gets a hash code for this identifier.</summary>
<returns>A hash code for this identifier.</returns>
<remarks>Numeric identifiers with leading zeros are have the same hash code (e.g.
'<c>15</c>' has the same hash code as '<c>015</c>').</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.op_Equality(Semver.PrereleaseIdentifier,Semver.PrereleaseIdentifier)">
<summary>
Determines whether two identifiers are equal.
</summary>
<returns><see langword="true"/> if the value of <paramref name="left"/> is the same as
the value of <paramref name="right"/>; otherwise <see langword="false"/>.</returns>
<remarks>Numeric identifiers with leading zeros are considered equal (e.g. '<c>15</c>'
is equal to '<c>015</c>').</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.op_Inequality(Semver.PrereleaseIdentifier,Semver.PrereleaseIdentifier)">
<summary>
Determines whether two identifiers are <em>not</em> equal.
</summary>
<returns><see langword="true"/> if the value of <paramref name="left"/> is different
from the value of <paramref name="right"/>; otherwise <see langword="false"/>.</returns>
<remarks>Numeric identifiers with leading zeros are considered equal (e.g. '<c>15</c>'
is equal to '<c>015</c>').</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.CompareTo(Semver.PrereleaseIdentifier)">
<summary>
Compares two identifiers and indicates whether this instance precedes, follows, or is
equal to the other in precedence order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to
<paramref name="value"/> in precedence order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>This instance precedes <paramref name="value"/>.</description>
</item>
<item>
<term>0</term>
<description>This instance is equal to <paramref name="value"/>.</description>
</item>
<item>
<term>1</term>
<description>This instance follows <paramref name="value"/>.</description>
</item>
</list>
</returns>
<remarks>Numeric identifiers have lower precedence than alphanumeric identifiers.
Numeric identifiers are compared numerically. Numeric identifiers with leading zeros are
considered equal (e.g. '<c>15</c>' is equal to '<c>015</c>'). Alphanumeric identifiers are
compared lexically in ASCII sort order. Invalid alphanumeric identifiers are
compared via an ordinal string comparision.</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.CompareTo(System.Object)">
<summary>
Compares this identifier to an <see cref="T:System.Object"/> and indicates whether this instance
precedes, follows, or is equal to the object in precedence order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to
<paramref name="value"/> in precedence order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>This instance precedes <paramref name="value"/>.</description>
</item>
<item>
<term>0</term>
<description>This instance is equal to <paramref name="value"/>.</description>
</item>
<item>
<term>1</term>
<description>This instance follows <paramref name="value"/> or <paramref name="value"/>
is <see langword="null"/>.</description>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:Semver.PrereleaseIdentifier"/>.</exception>
<remarks>Numeric identifiers have lower precedence than alphanumeric identifiers.
Numeric identifiers are compared numerically. Numeric identifiers with leading zeros are
considered equal (e.g. '<c>15</c>' is equal to '<c>015</c>'). Alphanumeric identifiers are
compared lexically in ASCII sort order. Invalid alphanumeric identifiers are
compared via an ordinal string comparision.</remarks>
</member>
<member name="M:Semver.PrereleaseIdentifier.op_Implicit(Semver.PrereleaseIdentifier)~System.String">
<summary>
Converts this identifier into an equivalent string value.
</summary>
<returns>The string value of this identifier or <see langword="null"/> if this is
a default <see cref="T:Semver.PrereleaseIdentifier"/></returns>
</member>
<member name="M:Semver.PrereleaseIdentifier.ToString">
<summary>
Converts this identifier into an equivalent string value.
</summary>
<returns>The string value of this identifier or <see langword="null"/> if this is
a default <see cref="T:Semver.PrereleaseIdentifier"/></returns>
</member>
<member name="T:Semver.Ranges.LeftBoundedRange">
<summary>
A range of versions that is bounded only on the left. That is a range defined by some version
<c>x</c> such that <c>x &lt; v</c> or <c>x &lt;= v</c> depending on whether it is inclusive.
A left-bounded range forms the lower limit for a version range.
</summary>
<remarks>An "unbounded" left-bounded range is represented by a lower bound of
<see langword="null"/> since <see langword="null"/> compares as less than all versions.
However, it does not allow such ranges to be inclusive because a range cannot contain null.
The <see cref="F:Semver.SemVersion.Min"/> (i.e. <c>0.0.0-0</c>) cannot be used instead
because it would be inclusive of prerelease.</remarks>
</member>
<member name="T:Semver.Ranges.RightBoundedRange">
<summary>
A range of versions that is bounded only on the right. That is a range defined by some version
<c>x</c> such that <c>v &lt; x</c> or <c>v &lt;= x</c> depending on whether it is inclusive.
A right-bounded range forms the upper limit for a version range.
</summary>
<remarks>An "unbounded" right-bounded range is represented by an inclusive upper bound of
<see cref="F:Semver.SemVersion.Max"/>.</remarks>
</member>
<member name="P:Semver.Ranges.RightBoundedRange.IncludesPrerelease">
<summary>
Whether this bound actually includes any prerelease versions.
</summary>
<remarks>
A non-inclusive bound of X.Y.Z-0 doesn't actually include any prerelease versions.
</remarks>
</member>
<member name="T:Semver.SemVersion">
<summary>
A semantic version number. Conforms with v2.0.0 of semantic versioning
(<a href="https://semver.org">semver.org</a>).
</summary>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Deserialize a <see cref="T:Semver.SemVersion"/>.
</summary>
<exception cref="T:System.ArgumentNullException">The <paramref name="info"/> parameter is null.</exception>
</member>
<member name="M:Semver.SemVersion.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with the data needed to serialize the target object.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
<param name="context">The destination (see <see cref="T:System.Runtime.Serialization.SerializationInfo"/>) for this serialization.</param>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32)">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion" /> class.
</summary>
<param name="major">The major version number.</param>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32,System.Int32)">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion" /> class.
</summary>
<param name="major">The major version number.</param>
<param name="minor">The minor version number.</param>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion" /> class.
</summary>
<param name="major">The major version number.</param>
<param name="minor">The minor version number.</param>
<param name="patch">The patch version number.</param>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32,System.String,System.String)">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion" /> class.
</summary>
<param name="major">The major version number.</param>
<param name="minor">The minor version number.</param>
<param name="patch">The patch version number.</param>
<param name="prerelease">The prerelease portion (e.g. "alpha.5").</param>
<param name="build">The build metadata (e.g. "nightly.232").</param>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable{Semver.PrereleaseIdentifier},System.Collections.Generic.IEnumerable{Semver.MetadataIdentifier})">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion" /> class.
</summary>
<param name="major">The major version number.</param>
<param name="minor">The minor version number.</param>
<param name="patch">The patch version number.</param>
<param name="prerelease">The prerelease identifiers.</param>
<param name="metadata">The build metadata identifiers.</param>
<exception cref="T:System.ArgumentOutOfRangeException">A <paramref name="major"/>,
<paramref name="minor"/>, or <paramref name="patch"/> version number is negative.</exception>
<exception cref="T:System.ArgumentException">A prerelease or metadata identifier has the default value.</exception>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{System.String})">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion" /> class.
</summary>
<param name="major">The major version number.</param>
<param name="minor">The minor version number.</param>
<param name="patch">The patch version number.</param>
<param name="prerelease">The prerelease identifiers.</param>
<param name="metadata">The build metadata identifiers.</param>
<exception cref="T:System.ArgumentOutOfRangeException">A <paramref name="major"/>,
<paramref name="minor"/>, or <paramref name="patch"/> version number is negative.</exception>
<exception cref="T:System.ArgumentNullException">One of the prerelease or metadata identifiers is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens) or has leading
zeros for a numeric identifier. Or, a metadata identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersion.ParsedFrom(System.Int32,System.Int32,System.Int32,System.String,System.String,System.Boolean)">
<summary>
Create a new instance of the <see cref="T:Semver.SemVersion" /> class. Parses prerelease
and metadata identifiers from dot separated strings. If parsing is not needed, use a
constructor instead.
</summary>
<param name="major">The major version number.</param>
<param name="minor">The minor version number.</param>
<param name="patch">The patch version number.</param>
<param name="prerelease">The prerelease portion (e.g. "alpha.5").</param>
<param name="metadata">The build metadata (e.g. "nightly.232").</param>
<param name="allowLeadingZeros">Allow leading zeros in numeric prerelease identifiers. Leading
zeros will be removed.</param>
<exception cref="T:System.ArgumentOutOfRangeException">A <paramref name="major"/>,
<paramref name="minor"/>, or <paramref name="patch"/> version number is negative.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens) or has leading
zeros for a numeric identifier when <paramref name="allowLeadingZeros"/> is
<see langword="false"/>. Or, a metadata identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Version)">
<summary>
Constructs a new instance of the <see cref="T:Semver.SemVersion"/> class from
a <see cref="T:System.Version"/>.
</summary>
<param name="version"><see cref="T:System.Version"/> used to initialize
the major, minor, and patch version numbers and the build metadata.</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="version"/> is null.</exception>
<remarks>Constructs a <see cref="T:Semver.SemVersion"/> with the same major and
minor version numbers. The patch version number will be the fourth component
of the <paramref name="version"/>. The build meta data will contain the third component
of the <paramref name="version"/> if it is greater than zero.</remarks>
</member>
<member name="M:Semver.SemVersion.#ctor(System.Int32,System.Int32,System.Int32,System.String,System.Collections.Generic.IReadOnlyList{Semver.PrereleaseIdentifier},System.String,System.Collections.Generic.IReadOnlyList{Semver.MetadataIdentifier})">
<summary>
Construct a <see cref="T:Semver.SemVersion"/> from its proper parts.
</summary>
<remarks>Parameter validation is not performed. The <paramref name="major"/>,
<paramref name="minor"/>, and <paramref name="patch"/> version numbers must not be
negative. The <paramref name="prereleaseIdentifiers"/> and
<paramref name="metadataIdentifiers"/> must not be <see langword="null"/> or
contain invalid values and must be immutable. The <paramref name="prerelease"/>
and <paramref name="metadata"/> must not be null and must be equal to the
corresponding identifiers.</remarks>
</member>
<member name="M:Semver.SemVersion.FromVersion(System.Version)">
<summary>
Converts a <see cref="T:System.Version"/> into the equivalent semantic version.
</summary>
<param name="version">The version to be converted to a semantic version.</param>
<returns>The equivalent semantic version.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="version"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="version"/> has a revision number greater than zero.</exception>
<remarks>
<see cref="T:System.Version"/> numbers have the form <em>major</em>.<em>minor</em>[.<em>build</em>[.<em>revision</em>]]
where square brackets ('[' and ']') indicate optional components. The first three parts
are converted to the major, minor, and patch version numbers of a semantic version. If the
build component is not defined (-1), the patch number is assumed to be zero.
<see cref="T:System.Version"/> numbers with a revision greater than zero cannot be converted to
semantic versions. An <see cref="T:System.ArgumentException"/> is thrown when this method is called
with such a <see cref="T:System.Version"/>.
</remarks>
</member>
<member name="M:Semver.SemVersion.ToVersion">
<summary>
Converts this semantic version to a <see cref="T:System.Version"/>.
</summary>
<returns>The equivalent <see cref="T:System.Version"/>.</returns>
<exception cref="T:System.InvalidOperationException">The semantic version is a prerelease version
or has build metadata or has a negative major, minor, or patch version number.</exception>
<remarks>
A semantic version of the form <em>major</em>.<em>minor</em>.<em>patch</em>
is converted to a <see cref="T:System.Version"/> of the form
<em>major</em>.<em>minor</em>.<em>build</em> where the build number is the
patch version of the semantic version. Prerelease versions and build metadata
are not representable in a <see cref="T:System.Version"/>. This method throws
an <see cref="T:System.InvalidOperationException"/> if the semantic version is a
prerelease version or has build metadata.
</remarks>
</member>
<member name="M:Semver.SemVersion.Parse(System.String,Semver.SemVersionStyles,System.Int32)">
<summary>
Converts the string representation of a semantic version to its <see cref="T:Semver.SemVersion"/> equivalent.
</summary>
<param name="version">The version string.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style
elements that can be present in <paramref name="version"/>. The preferred value to use
is <see cref="F:Semver.SemVersionStyles.Strict"/>.</param>
<param name="maxLength">The maximum length of <paramref name="version"/> that should be
parsed. This prevents attacks using very long version strings.</param>
<exception cref="T:System.ArgumentException"><paramref name="style"/> is not a valid
<see cref="T:Semver.SemVersionStyles"/> value.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="version"/> is <see langword="null"/>.</exception>
<exception cref="T:System.FormatException">The <paramref name="version"/> is invalid or not in a
format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">A numeric part of <paramref name="version"/> is too
large for an <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersion.Parse(System.String,System.Boolean)">
<summary>
Converts the string representation of a semantic version to its <see cref="T:Semver.SemVersion"/> equivalent.
</summary>
<param name="version">The version string.</param>
<param name="strict">If set to <see langword="true"/>, minor and patch version are required;
otherwise they are optional.</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="version"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">The <paramref name="version"/> has an invalid format.</exception>
<exception cref="T:System.InvalidOperationException">The <paramref name="version"/> is missing minor
or patch version numbers when <paramref name="strict"/> is <see langword="true"/>.</exception>
<exception cref="T:System.OverflowException">The major, minor, or patch version number is larger
than <see cref="F:System.Int32.MaxValue"/>.</exception>
</member>
<member name="M:Semver.SemVersion.TryParse(System.String,Semver.SemVersionStyles,Semver.SemVersion@,System.Int32)">
<summary>
Converts the string representation of a semantic version to its <see cref="T:Semver.SemVersion"/>
equivalent. The return value indicates whether the conversion succeeded.
</summary>
<param name="version">The version string.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style
elements that can be present in <paramref name="version"/>. The preferred value to use
is <see cref="F:Semver.SemVersionStyles.Strict"/>.</param>
<param name="semver">When this method returns, contains a <see cref="T:Semver.SemVersion"/> instance equivalent
to the version string passed in, if the version string was valid, or <see langword="null"/> if the
version string was invalid.</param>
<param name="maxLength">The maximum length of <paramref name="version"/> that should be
parsed. This prevents attacks using very long version strings.</param>
<returns><see langword="false"/> when an invalid version string is passed, otherwise <see langword="true"/>.</returns>
<exception cref="T:System.ArgumentException"><paramref name="style"/> is not a valid
<see cref="T:Semver.SemVersionStyles"/> value.</exception>
</member>
<member name="M:Semver.SemVersion.TryParse(System.String,Semver.SemVersion@,System.Boolean)">
<summary>
Converts the string representation of a semantic version to its <see cref="T:Semver.SemVersion"/>
equivalent. The return value indicates whether the conversion succeeded.
</summary>
<param name="version">The version string.</param>
<param name="semver">When this method returns, contains a <see cref="T:Semver.SemVersion"/> instance equivalent
to the version string passed in, if the version string was valid, or <see langword="null"/> if the
version string was invalid.</param>
<param name="strict">If set to <see langword="true"/>, minor and patch version numbers are required;
otherwise they are optional.</param>
<returns><see langword="false"/> when an invalid version string is passed, otherwise <see langword="true"/>.</returns>
</member>
<member name="M:Semver.SemVersion.Compare(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions and indicates whether the first precedes, follows, or is
equal to the other in the sort order. Note that sort order is more specific than precedence order.
</summary>
<returns>
An integer that indicates whether <paramref name="versionA" /> precedes, follows, or
is equal to <paramref name="versionB" /> in the sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>Less than zero</term>
<description><paramref name="versionA" /> precedes <paramref name="versionB" /> in the sort order.</description>
</item>
<item>
<term>Zero</term>
<description><paramref name="versionA" /> is equal to <paramref name="versionB" />.</description>
</item>
<item>
<term>Greater than zero</term>
<description>
<paramref name="versionA" /> follows <paramref name="versionB" /> in the sort order
or <paramref name="versionB" /> is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.Change(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.String)">
<summary>
Make a copy of the current instance with changed properties.
</summary>
<param name="major">The value to replace the major version number or
<see langword="null"/> to leave it unchanged.</param>
<param name="minor">The value to replace the minor version number or
<see langword="null"/> to leave it unchanged.</param>
<param name="patch">The value to replace the patch version number or
<see langword="null"/> to leave it unchanged.</param>
<param name="prerelease">The value to replace the prerelease portion
or <see langword="null"/> to leave it unchanged.</param>
<param name="build">The value to replace the build metadata or <see langword="null"/>
to leave it unchanged.</param>
<returns>The new version with changed properties.</returns>
<remarks>
The change method is intended to be called using named argument syntax, passing only
those fields to be changed.
</remarks>
<example>
To change only the patch version:
<code>var changedVersion = version.Change(patch: 4);</code>
</example>
</member>
<member name="M:Semver.SemVersion.With(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Collections.Generic.IEnumerable{Semver.PrereleaseIdentifier},System.Collections.Generic.IEnumerable{Semver.MetadataIdentifier})">
<summary>
Creates a copy of the current instance with multiple changed properties. If changing only
one property use one of the more specific <c>WithX()</c> methods.
</summary>
<param name="major">The value to replace the major version number or <see langword="null"/> to leave it unchanged.</param>
<param name="minor">The value to replace the minor version number or <see langword="null"/> to leave it unchanged.</param>
<param name="patch">The value to replace the patch version number or <see langword="null"/> to leave it unchanged.</param>
<param name="prerelease">The value to replace the prerelease identifiers or <see langword="null"/> to leave it unchanged.</param>
<param name="metadata">The value to replace the build metadata identifiers or <see langword="null"/> to leave it unchanged.</param>
<returns>The new version with changed properties.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">A <paramref name="major"/>,
<paramref name="minor"/>, or <paramref name="patch"/> version number is negative.</exception>
<exception cref="T:System.ArgumentException">A prerelease or metadata identifier has the default value.</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
<remarks>
The <see cref="M:Semver.SemVersion.With(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Collections.Generic.IEnumerable{Semver.PrereleaseIdentifier},System.Collections.Generic.IEnumerable{Semver.MetadataIdentifier})"/> method is intended to be called using named argument syntax, passing only
those fields to be changed.
</remarks>
<example>
To change the minor and patch versions:
<code>var modifiedVersion = version.With(minor: 2, patch: 4);</code>
</example>
</member>
<member name="M:Semver.SemVersion.WithParsedFrom(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.String,System.Boolean)">
<summary>
Creates a copy of the current instance with multiple changed properties. Parses prerelease
and metadata identifiers from dot separated strings. Use <see cref="M:Semver.SemVersion.With(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Collections.Generic.IEnumerable{Semver.PrereleaseIdentifier},System.Collections.Generic.IEnumerable{Semver.MetadataIdentifier})"/> instead if
parsing is not needed. If changing only one property use one of the more specific
<c>WithX()</c> methods.
</summary>
<param name="major">The value to replace the major version number or <see langword="null"/> to leave it unchanged.</param>
<param name="minor">The value to replace the minor version number or <see langword="null"/> to leave it unchanged.</param>
<param name="patch">The value to replace the patch version number or <see langword="null"/> to leave it unchanged.</param>
<param name="prerelease">The value to replace the prerelease identifiers or <see langword="null"/> to leave it unchanged.</param>
<param name="metadata">The value to replace the build metadata identifiers or <see langword="null"/> to leave it unchanged.</param>
<param name="allowLeadingZeros">Allow leading zeros in numeric prerelease identifiers. Leading
zeros will be removed.</param>
<returns>The new version with changed properties.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">A <paramref name="major"/>,
<paramref name="minor"/>, or <paramref name="patch"/> version number is negative.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens) or has leading
zeros for a numeric identifier when <paramref name="allowLeadingZeros"/> is
<see langword="false"/>. Or, a metadata identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
<remarks>
The <see cref="M:Semver.SemVersion.WithParsedFrom(System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.String,System.Boolean)"/> method is intended to be called using named argument
syntax, passing only those fields to be changed.
</remarks>
<example>
To change the patch version and prerelease identifiers version:
<code>var modifiedVersion = version.WithParsedFrom(patch: 4, prerelease: "alpha.5");</code>
</example>
</member>
<member name="M:Semver.SemVersion.WithMajor(System.Int32)">
<summary>
Creates a copy of the current instance with a different major version number.
</summary>
<param name="major">The value to replace the major version number.</param>
<returns>The new version with the different major version number.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="major"/> is negative.</exception>
</member>
<member name="M:Semver.SemVersion.WithMinor(System.Int32)">
<summary>
Creates a copy of the current instance with a different minor version number.
</summary>
<param name="minor">The value to replace the minor version number.</param>
<returns>The new version with the different minor version number.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minor"/> is negative.</exception>
</member>
<member name="M:Semver.SemVersion.WithPatch(System.Int32)">
<summary>
Creates a copy of the current instance with a different patch version number.
</summary>
<param name="patch">The value to replace the patch version number.</param>
<returns>The new version with the different patch version number.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="patch"/> is negative.</exception>
</member>
<member name="M:Semver.SemVersion.WithPrereleaseParsedFrom(System.String,System.Boolean)">
<summary>
Creates a copy of the current instance with a different prerelease portion.
</summary>
<param name="prerelease">The value to replace the prerelease portion.</param>
<param name="allowLeadingZeros">Whether to allow leading zeros in the prerelease identifiers.
If <see langword="true"/>, leading zeros will be allowed on numeric identifiers
but will be removed.</param>
<returns>The new version with the different prerelease identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="prerelease"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens) or has leading
zeros for a numeric identifier when <paramref name="allowLeadingZeros"/> is <see langword="false"/>.</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
<remarks>Because a valid numeric identifier does not have leading zeros, this constructor
will never create a <see cref="T:Semver.PrereleaseIdentifier"/> with leading zeros even if
<paramref name="allowLeadingZeros"/> is <see langword="true"/>. Any leading zeros will
be removed.</remarks>
</member>
<member name="M:Semver.SemVersion.WithPrerelease(System.String,System.String[])">
<summary>
Creates a copy of the current instance with different prerelease identifiers.
</summary>
<param name="prereleaseIdentifier">The first identifier to replace the existing
prerelease identifiers.</param>
<param name="prereleaseIdentifiers">The rest of the identifiers to replace the
existing prerelease identifiers.</param>
<returns>The new version with the different prerelease identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="prereleaseIdentifier"/> or
<paramref name="prereleaseIdentifiers"/> is <see langword="null"/> or one of the
prerelease identifiers is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens) or has leading
zeros for a numeric identifier.</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersion.WithPrerelease(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Creates a copy of the current instance with different prerelease identifiers.
</summary>
<param name="prereleaseIdentifiers">The identifiers to replace the prerelease identifiers.</param>
<returns>The new version with the different prerelease identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="prereleaseIdentifiers"/> is
<see langword="null"/> or one of the prerelease identifiers is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens) or has leading
zeros for a numeric identifier.</exception>
<exception cref="T:System.OverflowException">A numeric prerelease identifier value is too large
for <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersion.WithPrerelease(Semver.PrereleaseIdentifier,Semver.PrereleaseIdentifier[])">
<summary>
Creates a copy of the current instance with different prerelease identifiers.
</summary>
<param name="prereleaseIdentifier">The first identifier to replace the existing
prerelease identifiers.</param>
<param name="prereleaseIdentifiers">The rest of the identifiers to replace the
existing prerelease identifiers.</param>
<returns>The new version with the different prerelease identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="prereleaseIdentifiers"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier has the default value.</exception>
</member>
<member name="M:Semver.SemVersion.WithPrerelease(System.Collections.Generic.IEnumerable{Semver.PrereleaseIdentifier})">
<summary>
Creates a copy of the current instance with different prerelease identifiers.
</summary>
<param name="prereleaseIdentifiers">The identifiers to replace the prerelease identifiers.</param>
<returns>The new version with the different prerelease identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="prereleaseIdentifiers"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A prerelease identifier has the default value.</exception>
</member>
<member name="M:Semver.SemVersion.WithoutPrerelease">
<summary>
Creates a copy of the current instance without prerelease identifiers.
</summary>
<returns>The new version without prerelease identifiers.</returns>
</member>
<member name="M:Semver.SemVersion.WithMetadataParsedFrom(System.String)">
<summary>
Creates a copy of the current instance with different build metadata.
</summary>
<param name="metadata">The value to replace the build metadata.</param>
<returns>The new version with the different build metadata.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="metadata"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A metadata identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
</member>
<member name="M:Semver.SemVersion.WithMetadata(System.String,System.String[])">
<summary>
Creates a copy of the current instance with different build metadata identifiers.
</summary>
<param name="metadataIdentifier">The first identifier to replace the existing
build metadata identifiers.</param>
<param name="metadataIdentifiers">The rest of the build metadata identifiers to replace the
existing build metadata identifiers.</param>
<returns>The new version with the different build metadata identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="metadataIdentifier"/> or
<paramref name="metadataIdentifiers"/> is <see langword="null"/> or one of the metadata
identifiers is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A metadata identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
</member>
<member name="M:Semver.SemVersion.WithMetadata(System.Collections.Generic.IEnumerable{System.String})">
<summary>
Creates a copy of the current instance with different build metadata identifiers.
</summary>
<param name="metadataIdentifiers">The identifiers to replace the build metadata identifiers.</param>
<returns>The new version with the different build metadata identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="metadataIdentifiers"/> is
<see langword="null"/> or one of the metadata identifiers is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A metadata identifier is empty or contains invalid
characters (i.e. characters that are not ASCII alphanumerics or hyphens).</exception>
</member>
<member name="M:Semver.SemVersion.WithMetadata(Semver.MetadataIdentifier,Semver.MetadataIdentifier[])">
<summary>
Creates a copy of the current instance with different build metadata identifiers.
</summary>
<param name="metadataIdentifier">The first identifier to replace the existing
build metadata identifiers.</param>
<param name="metadataIdentifiers">The rest of the identifiers to replace the
existing build metadata identifiers.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="metadataIdentifiers"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A metadata identifier has the default value.</exception>
</member>
<member name="M:Semver.SemVersion.WithMetadata(System.Collections.Generic.IEnumerable{Semver.MetadataIdentifier})">
<summary>
Creates a copy of the current instance with different build metadata identifiers.
</summary>
<param name="metadataIdentifiers">The identifiers to replace the build metadata identifiers.</param>
<returns>The new version with the different build metadata identifiers.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="metadataIdentifiers"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">A metadata identifier has the default value.</exception>
</member>
<member name="M:Semver.SemVersion.WithoutMetadata">
<summary>
Creates a copy of the current instance without build metadata.
</summary>
<returns>The new version without build metadata.</returns>
</member>
<member name="M:Semver.SemVersion.WithoutPrereleaseOrMetadata">
<summary>
Creates a copy of the current instance without prerelease identifiers or build metadata.
</summary>
<returns>The new version without prerelease identifiers or build metadata.</returns>
</member>
<member name="P:Semver.SemVersion.Major">
<summary>The major version number.</summary>
<value>The major version number.</value>
<remarks>An increase in the major version number indicates a backwards
incompatible change.</remarks>
</member>
<member name="P:Semver.SemVersion.Minor">
<summary>The minor version number.</summary>
<value>The minor version number.</value>
<remarks>An increase in the minor version number indicates backwards
compatible changes.</remarks>
</member>
<member name="P:Semver.SemVersion.Patch">
<summary>The patch version number.</summary>
<value>The patch version number.</value>
<remarks>An increase in the patch version number indicates backwards
compatible bug fixes.</remarks>
</member>
<member name="P:Semver.SemVersion.Prerelease">
<summary>
The prerelease identifiers for this version.
</summary>
<value>
The prerelease identifiers for this version or empty string if this is a release version.
</value>
<remarks>
<para>A prerelease version is denoted by appending a hyphen ('<c>-</c>') and a series
of dot separated identifiers immediately following the patch version number. Each
prerelease identifier may be numeric or alphanumeric. Valid numeric identifiers consist
of ASCII digits (<c>[0-9]</c>) without leading zeros. Valid alphanumeric identifiers are
non-empty strings of ASCII alphanumeric and hyphen characters (<c>[0-9A-Za-z-]</c>) with
at least one non-digit character.</para>
<para>Prerelease versions have lower precedence than release versions. Prerelease
version precedence is determined by comparing each prerelease identifier in order from
left to right. Numeric identifiers have lower precedence than alphanumeric identifiers.
Numeric identifiers are compared numerically. Alphanumeric identifiers are compared
lexically in ASCII sort order.</para>
</remarks>
</member>
<member name="P:Semver.SemVersion.PrereleaseIdentifiers">
<summary>
The prerelease identifiers for this version.
</summary>
<value>
The prerelease identifiers for this version or empty if this is a release version.
</value>
<remarks>
<para>A prerelease version is denoted by appending a hyphen ('<c>-</c>') and a series
of dot separated identifiers immediately following the patch version number. Each
prerelease identifier may be numeric or alphanumeric. Valid numeric identifiers consist
of ASCII digits (<c>[0-9]</c>) without leading zeros. Valid alphanumeric identifiers are
non-empty strings of ASCII alphanumeric and hyphen characters (<c>[0-9A-Za-z-]</c>) with
at least one non-digit character.</para>
<para>Prerelease versions have lower precedence than release versions. Prerelease
version precedence is determined by comparing each prerelease identifier in order from
left to right. Numeric identifiers have lower precedence than alphanumeric identifiers.
Numeric identifiers are compared numerically. Alphanumeric identifiers are compared
lexically in ASCII sort order.</para>
</remarks>
</member>
<member name="P:Semver.SemVersion.PrereleaseIsZero">
<summary>
Whether this is a prerelease version where the prerelease version is zero (i.e. "-0").
</summary>
</member>
<member name="P:Semver.SemVersion.IsPrerelease">
<summary>Whether this is a prerelease version.</summary>
<value>Whether this is a prerelease version. A semantic version with
prerelease identifiers is a prerelease version.</value>
<remarks>When this is <see langword="true"/>, the <see cref="P:Semver.SemVersion.Prerelease"/>
and <see cref="P:Semver.SemVersion.PrereleaseIdentifiers"/> properties are non-empty. When
this is <see langword="false"/>, the <see cref="P:Semver.SemVersion.Prerelease"/> property
will be an empty string and the <see cref="P:Semver.SemVersion.PrereleaseIdentifiers"/> will
be an empty collection.</remarks>
</member>
<member name="P:Semver.SemVersion.IsRelease">
<summary>Whether this is a release version.</summary>
<value>Whether this is a release version. A semantic version without
prerelease identifiers is a release version.</value>
<remarks>When this is <see langword="true"/>, the <see cref="P:Semver.SemVersion.Prerelease"/>
property will be an empty string and the <see cref="P:Semver.SemVersion.PrereleaseIdentifiers"/>
will be an empty collection. When this is <see langword="false"/>,
the <see cref="P:Semver.SemVersion.Prerelease"/> and <see cref="P:Semver.SemVersion.PrereleaseIdentifiers"/>
properties are non-empty.</remarks>
</member>
<member name="P:Semver.SemVersion.Build">
<summary>The build metadata for this version.</summary>
<value>
The build metadata for this version or empty string if there is no build metadata.
</value>
<remarks>
<para>The build metadata is a series of dot separated identifiers separated from the
rest of the version number with a plus sign ('<c>+</c>'). Valid metadata identifiers are
non-empty and consist of ASCII alphanumeric characters and hyphens (<c>[0-9A-Za-z-]</c>).</para>
<para>The metadata does not affect precedence. Two version numbers differing only in
build metadata have the same precedence. However, metadata does affect sort order. An
otherwise identical version without metadata sorts before one that has metadata.</para>
</remarks>
</member>
<member name="P:Semver.SemVersion.Metadata">
<summary>The build metadata for this version.</summary>
<value>The build metadata for this version or empty string if there
is no metadata.</value>
<remarks>
<para>The build metadata is a series of dot separated identifiers separated from the
rest of the version number with a plus sign ('<c>+</c>'). Valid metadata identifiers are
non-empty and consist of ASCII alphanumeric characters and hyphens (<c>[0-9A-Za-z-]</c>).</para>
<para>The metadata does not affect precedence. Two version numbers differing only in
build metadata have the same precedence. However, metadata does affect sort order. An
otherwise identical version without metadata sorts before one that has metadata.</para>
</remarks>
</member>
<member name="P:Semver.SemVersion.MetadataIdentifiers">
<summary>The build metadata identifiers for this version.</summary>
<value>The build metadata identifiers for this version or empty if there
is no metadata.</value>
<remarks>
<para>The build metadata is a series of dot separated identifiers separated from the
rest of the version number with a plus sign ('<c>+</c>'). Valid metadata identifiers are
non-empty and consist of ASCII alphanumeric characters and hyphens (<c>[0-9A-Za-z-]</c>).</para>
<para>The metadata does not affect precedence. Two version numbers differing only in
build metadata have the same precedence. However, metadata does affect sort order. An
otherwise identical version without metadata sorts before one that has metadata.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.ToString">
<summary>
Converts this version to an equivalent string value.
</summary>
<returns>
The <see cref="T:System.String" /> equivalent of this version.
</returns>
</member>
<member name="M:Semver.SemVersion.Equals(Semver.SemVersion,Semver.SemVersion)">
<summary>
Determines whether two semantic versions are equal.
</summary>
<returns><see langword="true"/> if the two versions are equal, otherwise <see langword="false"/>.</returns>
<remarks>Two versions are equal if every part of the version numbers are equal. Thus two
versions with the same precedence may not be equal.</remarks>
</member>
<member name="M:Semver.SemVersion.Equals(System.Object)">
<summary>Determines whether the given object is equal to this version.</summary>
<returns><see langword="true"/> if <paramref name="obj"/> is equal to the this version;
otherwise <see langword="false"/>.</returns>
<remarks>Two versions are equal if every part of the version numbers are equal. Thus two
versions with the same precedence may not be equal.</remarks>
</member>
<member name="M:Semver.SemVersion.Equals(Semver.SemVersion)">
<summary>
Determines whether two semantic versions are equal.
</summary>
<returns><see langword="true"/> if <paramref name="other"/> is equal to the this version;
otherwise <see langword="false"/>.</returns>
<remarks>Two versions are equal if every part of the version numbers are equal. Thus two
versions with the same precedence may not be equal.</remarks>
</member>
<member name="M:Semver.SemVersion.PrecedenceEquals(Semver.SemVersion)">
<summary>
Determines whether two semantic versions have the same precedence. Versions that differ
only by build metadata have the same precedence.
</summary>
<param name="other">The semantic version to compare to.</param>
<returns><see langword="true"/> if the version precedences are equal, otherwise
<see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersion.PrecedenceEquals(Semver.SemVersion,Semver.SemVersion)">
<summary>
Determines whether two semantic versions have the same precedence. Versions that differ
only by build metadata have the same precedence.
</summary>
<returns><see langword="true"/> if the version precedences are equal, otherwise
<see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersion.PrecedenceMatches(Semver.SemVersion)">
<summary>
Determines whether two semantic versions have the same precedence. Versions
that differ only by build metadata have the same precedence.
</summary>
<param name="other">The semantic version to compare to.</param>
<returns><see langword="true"/> if the version precedences are equal.</returns>
</member>
<member name="M:Semver.SemVersion.GetHashCode">
<summary>
Gets a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms
and data structures like a hash table.
</returns>
<remarks>Two versions are equal if every part of the version numbers are equal. Thus two
versions with the same precedence may not have the same hash code.</remarks>
</member>
<member name="M:Semver.SemVersion.op_Equality(Semver.SemVersion,Semver.SemVersion)">
<summary>
Determines whether two semantic versions are equal.
</summary>
<returns><see langword="true"/> if the two versions are equal, otherwise <see langword="false"/>.</returns>
<remarks>Two versions are equal if every part of the version numbers are equal. Thus two
versions with the same precedence may not be equal.</remarks>
</member>
<member name="M:Semver.SemVersion.op_Inequality(Semver.SemVersion,Semver.SemVersion)">
<summary>
Determines whether two semantic versions are <em>not</em> equal.
</summary>
<returns><see langword="true"/> if the two versions are <em>not</em> equal, otherwise <see langword="false"/>.</returns>
<remarks>Two versions are equal if every part of the version numbers are equal. Thus two
versions with the same precedence may not be equal.</remarks>
</member>
<member name="P:Semver.SemVersion.PrecedenceComparer">
<summary>
An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> and <see cref="T:System.Collections.Generic.IComparer`1" />
that compares <see cref="T:Semver.SemVersion" /> by precedence. This can be used for sorting,
binary search, and using <see cref="T:Semver.SemVersion" /> as a dictionary key.
</summary>
<value>A precedence comparer that implements <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> and
<see cref="T:System.Collections.Generic.IComparer`1" /> for <see cref="T:Semver.SemVersion" />.</value>
<remarks>
<para>Precedence order is determined by comparing the major, minor, patch, and prerelease
portion in order from left to right. Versions that differ only by build metadata have the
same precedence. The major, minor, and patch version numbers are compared numerically. A
prerelease version precedes a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="P:Semver.SemVersion.SortOrderComparer">
<summary>
An <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> and <see cref="T:System.Collections.Generic.IComparer`1" />
that compares <see cref="T:Semver.SemVersion" /> by sort order. This can be used for sorting,
binary search, and using <see cref="T:Semver.SemVersion" /> as a dictionary key.
</summary>
<value>A sort order comparer that implements <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> and
<see cref="T:System.Collections.Generic.IComparer`1" /> for <see cref="T:Semver.SemVersion" />.</value>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.ComparePrecedenceTo(Semver.SemVersion)">
<summary>
Compares two versions and indicates whether this instance precedes, follows, or is in the same
position as the other in the precedence order. Versions that differ only by build metadata
have the same precedence.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is in the same
position as <paramref name="other" /> in the precedence order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>This instance precedes <paramref name="other" /> in the precedence order.</description>
</item>
<item>
<term>0</term>
<description>This instance has the same precedence as <paramref name="other" />.</description>
</item>
<item>
<term>1</term>
<description>
This instance follows <paramref name="other" /> in the precedence order
or <paramref name="other" /> is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Precedence order is determined by comparing the major, minor, patch, and prerelease
portion in order from left to right. Versions that differ only by build metadata have the
same precedence. The major, minor, and patch version numbers are compared numerically. A
prerelease version precedes a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.CompareSortOrderTo(Semver.SemVersion)">
<summary>
Compares two versions and indicates whether this instance precedes, follows, or is equal
to the other in the sort order. Note that sort order is more specific than precedence order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to the
other in the sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>This instance precedes the other in the sort order.</description>
</item>
<item>
<term>0</term>
<description>This instance is equal to the other.</description>
</item>
<item>
<term>1</term>
<description>
This instance follows the other in the sort order
or the other is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.ComparePrecedence(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions and indicates whether the first precedes, follows, or is in the same
position as the second in the precedence order. Versions that differ only by build metadata
have the same precedence.
</summary>
<returns>
An integer that indicates whether <paramref name="left" /> precedes, follows, or is in the same
position as <paramref name="right" /> in the precedence order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>
<paramref name="left" /> precedes <paramref name="right" /> in the precedence
order or <paramref name="left" /> is <see langword="null" />.</description>
</item>
<item>
<term>0</term>
<description><paramref name="left" /> has the same precedence as <paramref name="right" />.</description>
</item>
<item>
<term>1</term>
<description>
<paramref name="left" /> follows <paramref name="right" /> in the precedence order
or <paramref name="right" /> is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Precedence order is determined by comparing the major, minor, patch, and prerelease
portion in order from left to right. Versions that differ only by build metadata have the
same precedence. The major, minor, and patch version numbers are compared numerically. A
prerelease version precedes a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.CompareSortOrder(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions and indicates whether the first precedes, follows, or is equal to
the second in the sort order. Note that sort order is more specific than precedence order.
</summary>
<returns>
An integer that indicates whether <paramref name="left" /> precedes, follows, or is equal
to <paramref name="right" /> in the sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>-1</term>
<description>
<paramref name="left" /> precedes <paramref name="right" /> in the sort
order or <paramref name="left" /> is <see langword="null" />.</description>
</item>
<item>
<term>0</term>
<description><paramref name="left" /> is equal to <paramref name="right" />.</description>
</item>
<item>
<term>1</term>
<description>
<paramref name="left" /> follows <paramref name="right" /> in the sort order
or <paramref name="right" /> is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.CompareTo(System.Object)">
<summary>
Compares this version to an <see cref="T:System.Object" /> and indicates whether this instance
precedes, follows, or is equal to the object in the sort order. Note that sort order
is more specific than precedence order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to
the other in the sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>Less than zero</term>
<description>This instance precedes the other in the sort order.</description>
</item>
<item>
<term>Zero</term>
<description>This instance is equal to the other.</description>
</item>
<item>
<term>Greater than zero</term>
<description>
This instance follows the other in the sort order
or the other is <see langword="null" />.
</description>
</item>
</list>
</returns>
<exception cref="T:System.InvalidCastException">The <paramref name="obj" /> is not a <see cref="T:Semver.SemVersion" />.</exception>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.CompareTo(Semver.SemVersion)">
<summary>
Compares two versions and indicates whether this instance precedes, follows, or is
equal to the other in the sort order. Note that sort order is more specific than precedence order.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is equal to
the other in the sort order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>Less than zero</term>
<description>This instance precedes the other in the sort order.</description>
</item>
<item>
<term>Zero</term>
<description>This instance is equal to the other.</description>
</item>
<item>
<term>Greater than zero</term>
<description>
This instance follows the other in the sort order
or the other is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.CompareByPrecedence(Semver.SemVersion)">
<summary>
Compares two versions and indicates whether this instance precedes, follows, or is in the same
position as the other in the precedence order. Versions that differ only by build metadata
have the same precedence.
</summary>
<returns>
An integer that indicates whether this instance precedes, follows, or is in the same
position as <paramref name="other"/> in the precedence order.
<list type="table">
<listheader>
<term>Value</term>
<description>Condition</description>
</listheader>
<item>
<term>Less than zero</term>
<description>This instance precedes <paramref name="other"/> in the precedence order.</description>
</item>
<item>
<term>Zero</term>
<description>This instance has the same precedence as <paramref name="other"/>.</description>
</item>
<item>
<term>Greater than zero</term>
<description>
This instance follows <paramref name="other"/> in the precedence order
or <paramref name="other"/> is <see langword="null" />.
</description>
</item>
</list>
</returns>
<remarks>
<para>Precedence order is determined by comparing the major, minor, patch, and prerelease
portion in order from left to right. Versions that differ only by build metadata have the
same precedence. The major, minor, and patch version numbers are compared numerically. A
prerelease version precedes a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.op_GreaterThan(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions by sort order. Note that sort order is more specific than precedence order.
</summary>
<returns><see langword="true" /> if <paramref name="left" /> follows <paramref name="right" />
in the sort order; otherwise <see langword="false" />.</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.op_GreaterThanOrEqual(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions by sort order. Note that sort order is more specific than precedence order.
</summary>
<returns><see langword="true" /> if <paramref name="left" /> follows or is equal to
<paramref name="right" /> in the sort order; otherwise <see langword="false" />.</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.op_LessThan(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions by sort order. Note that sort order is more specific than precedence order.
</summary>
<returns><see langword="true" /> if <paramref name="left" /> precedes <paramref name="right" />
in the sort order; otherwise <see langword="false" />.</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.op_LessThanOrEqual(Semver.SemVersion,Semver.SemVersion)">
<summary>
Compares two versions by sort order. Note that sort order is more specific than precedence order.
</summary>
<returns><see langword="true" /> if <paramref name="left" /> precedes or is equal to
<paramref name="right" /> in the sort order; otherwise <see langword="false" />.</returns>
<remarks>
<para>Sort order is consistent with precedence order, but provides an order for versions
with the same precedence. Sort order is determined by comparing the major, minor,
patch, prerelease portion, and build metadata in order from left to right. The major,
minor, and patch version numbers are compared numerically. A prerelease version precedes
a release version.</para>
<para>The prerelease portion is compared by comparing each prerelease identifier from
left to right. Numeric prerelease identifiers precede alphanumeric identifiers. Numeric
identifiers are compared numerically. Alphanumeric identifiers are compared lexically
in ASCII sort order. A longer series of prerelease identifiers follows a shorter series
if all the preceding identifiers are equal.</para>
<para>Otherwise equal versions without build metadata precede those with metadata. The
build metadata is compared by comparing each metadata identifier. Identifiers are
compared lexically in ASCII sort order. A longer series of metadata identifiers follows
a shorter series if all the preceding identifiers are equal.</para>
</remarks>
</member>
<member name="M:Semver.SemVersion.Satisfies(System.Predicate{Semver.SemVersion})">
<summary>
Checks if this version satisfies the given predicate.
</summary>
<param name="predicate">The predicate to evaluate on this version.</param>
<returns><see langword="true"/> if the version satisfies the predicate,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="predicate"/> is
<see langword="null"/>.</exception>
</member>
<member name="M:Semver.SemVersion.Satisfies(Semver.SemVersionRange)">
<summary>
Checks if this version is contained in the given range.
</summary>
<param name="range">The range to evaluate.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is
<see langword="null"/>.</exception>
</member>
<member name="M:Semver.SemVersion.Satisfies(Semver.UnbrokenSemVersionRange)">
<summary>
Checks if this version is contained in the given unbroken range.
</summary>
<param name="range">The unbroken range to evaluate.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is
<see langword="null"/>.</exception>
</member>
<member name="M:Semver.SemVersion.Satisfies(System.String,Semver.SemVersionRangeOptions,System.Int32)">
<summary>
Checks if this version is contained in the given range.
</summary>
<param name="range">The range to parse and evaluate.</param>
<param name="options">A bitwise combination of enumeration values that indicates the style
elements that can be present in <paramref name="range"/>. The overload without this
parameter defaults to <see cref="F:Semver.SemVersionRangeOptions.Strict"/>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long range strings.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="options"/> is not a valid
<see cref="T:Semver.SemVersionRangeOptions"/> value.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than
zero.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid or not in a
format compliant with <paramref name="options"/>.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
<remarks>If checks against a range will be performed repeatedly, it is much more
efficient to parse the range into a <see cref="T:Semver.SemVersionRange"/> once and use that
object to repeatedly check for containment.</remarks>
</member>
<member name="M:Semver.SemVersion.Satisfies(System.String,System.Int32)">
<summary>
Checks if this version is contained in the given range. The range is parsed using
<see cref="F:Semver.SemVersionRangeOptions.Strict"/>.
</summary>
<param name="range">The range to parse and evaluate.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long range strings.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than
zero.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid or not in a
format compliant with <see cref="F:Semver.SemVersionRangeOptions.Strict"/>.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
<remarks>If checks against a range will be performed repeatedly, it is much more
efficient to parse the range into a <see cref="T:Semver.SemVersionRange"/> once and use that
object to repeatedly check for containment.</remarks>
</member>
<member name="M:Semver.SemVersion.SatisfiesNpm(System.String,System.Boolean,System.Int32)">
<summary>
Checks if this version is contained in the given range in npm format.
</summary>
<param name="range">The npm format range to parse and evaluate.</param>
<param name="includeAllPrerelease">Whether to include all prerelease versions satisfying
the bounds in the range or to only include prerelease versions when it matches a bound
that explicitly includes prerelease versions.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long range strings.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than
zero.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
<remarks>If checks against a range will be performed repeatedly, it is much more
efficient to parse the range into a <see cref="T:Semver.SemVersionRange"/> once using
<see cref="M:Semver.SemVersionRange.ParseNpm(System.String,System.Boolean,System.Int32)"/> and use that object to
repeatedly check for containment.</remarks>
</member>
<member name="M:Semver.SemVersion.SatisfiesNpm(System.String,System.Int32)">
<summary>
Checks if this version is contained in the given range in npm format. Does not include
all prerelease when parsing the range.
</summary>
<param name="range">The npm format range to parse and evaluate.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long range strings.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is
<see langword="null"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than
zero.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
<remarks>If checks against a range will be performed repeatedly, it is much more
efficient to parse the range into a <see cref="T:Semver.SemVersionRange"/> once using
<see cref="M:Semver.SemVersionRange.ParseNpm(System.String,System.Int32)"/> and use that object to
repeatedly check for containment.</remarks>
</member>
<member name="M:Semver.SemVersion.op_Implicit(System.String)~Semver.SemVersion">
<summary>
Implicit conversion from <see cref="T:System.String"/> to <see cref="T:Semver.SemVersion"/>.
</summary>
<param name="version">The semantic version.</param>
<returns>The <see cref="T:Semver.SemVersion"/> object.</returns>
<exception cref="T:System.ArgumentNullException">The <paramref name="version"/> is <see langword="null"/>.</exception>
<exception cref="T:System.ArgumentException">The version number has an invalid format.</exception>
<exception cref="T:System.OverflowException">The major, minor, or patch version number is larger than <see cref="F:System.Int32.MaxValue"/>.</exception>
</member>
<member name="T:Semver.SemVersionRange">
<summary>
A range of <see cref="T:Semver.SemVersion"/> values. A range can have gaps in it and may include only
some prerelease versions between included release versions. For a range that cannot have
gaps see the <see cref="T:Semver.UnbrokenSemVersionRange"/> class.
</summary>
</member>
<member name="P:Semver.SemVersionRange.Empty">
<summary>
The empty range that contains no versions.
</summary>
<value>The empty range that contains no versions.</value>
</member>
<member name="P:Semver.SemVersionRange.AllRelease">
<summary>
The range that contains all release versions but no prerelease versions.
</summary>
<value>The range that contains all release versions but no prerelease versions.</value>
</member>
<member name="P:Semver.SemVersionRange.All">
<summary>
The range that contains both all release and prerelease versions.
</summary>
<value>The range that contains both all release and prerelease versions.</value>
</member>
<member name="M:Semver.SemVersionRange.Equals(Semver.SemVersion)">
<summary>
Construct a range containing only a single version.
</summary>
<param name="version">The version the range should contain.</param>
<returns>A range containing only the given version.</returns>
</member>
<member name="M:Semver.SemVersionRange.GreaterThan(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions greater than the given version.
</summary>
<param name="version">The range will contain all versions greater than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions greater than the given version.</returns>
</member>
<member name="M:Semver.SemVersionRange.AtLeast(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions equal to or greater than the given version.
</summary>
<param name="version">The range will contain all versions greater than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions greater than or equal to the given version.</returns>
</member>
<member name="M:Semver.SemVersionRange.LessThan(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions less than the given version.
</summary>
<param name="version">The range will contain all versions less than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions less than the given version.</returns>
</member>
<member name="M:Semver.SemVersionRange.AtMost(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions equal to or less than the given version.
</summary>
<param name="version">The range will contain all versions less than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions less than or equal to the given version.</returns>
</member>
<member name="M:Semver.SemVersionRange.Inclusive(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions including those versions.
</summary>
<param name="start">The range will contain only versions greater than or equal to this.</param>
<param name="end">The range will contain only versions less than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including those versions.</returns>
</member>
<member name="M:Semver.SemVersionRange.InclusiveOfStart(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions including the start
but not the end.
</summary>
<param name="start">The range will contain only versions greater than or equal to this.</param>
<param name="end">The range will contain only versions less than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including the start but
not the end.</returns>
</member>
<member name="M:Semver.SemVersionRange.InclusiveOfEnd(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions including the end but
not the start.
</summary>
<param name="start">The range will contain only versions greater than this.</param>
<param name="end">The range will contain only versions less than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including the end but
not the start.</returns>
</member>
<member name="M:Semver.SemVersionRange.Exclusive(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions excluding those versions.
</summary>
<param name="start">The range will contain only versions greater than this.</param>
<param name="end">The range will contain only versions less than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including the end but
not the start.</returns>
</member>
<member name="M:Semver.SemVersionRange.Create(System.Collections.Generic.List{Semver.UnbrokenSemVersionRange})">
<remarks>Ownership of the <paramref name="ranges"/> list must be given to this method.
The list will be mutated and used as the basis of an immutable list. It must not still
be referenced by the caller.</remarks>
</member>
<member name="M:Semver.SemVersionRange.Create(System.Collections.Generic.IEnumerable{Semver.UnbrokenSemVersionRange})">
<summary>
Construct a range that joins the given <see cref="T:Semver.UnbrokenSemVersionRange"/>s. It will
contain all versions contained by any of the given unbroken ranges.
</summary>
<param name="ranges">The unbroken ranges to join into a single range.</param>
<returns>A range that joins the given <see cref="T:Semver.UnbrokenSemVersionRange"/>s. It will
contain all versions contained by any of the given unbroken ranges.</returns>
<remarks>The unbroken ranges are simplified and sorted. So, the resulting
<see cref="T:Semver.SemVersionRange"/> may not contain the same number of
<see cref="T:Semver.UnbrokenSemVersionRange"/>s in the same order as passed to this method.</remarks>
</member>
<member name="M:Semver.SemVersionRange.Create(Semver.UnbrokenSemVersionRange[])">
<summary>
Construct a range that joins the given <see cref="T:Semver.UnbrokenSemVersionRange"/>s. It will
contain all versions contained by any of the given unbroken ranges.
</summary>
<param name="ranges">The unbroken ranges to join into a single range.</param>
<returns>A range that joins the given <see cref="T:Semver.UnbrokenSemVersionRange"/>s. It will
contain all versions contained by any of the given unbroken ranges.</returns>
<remarks>The unbroken ranges are simplified and sorted. So, the resulting
<see cref="T:Semver.SemVersionRange"/> may not contain the same number of
<see cref="T:Semver.UnbrokenSemVersionRange"/>s in the same order as passed to this method.</remarks>
</member>
<member name="M:Semver.SemVersionRange.#ctor(Semver.UnbrokenSemVersionRange)">
<remarks>Parameter validation is not performed. The unbroken range must not be empty.</remarks>
</member>
<member name="M:Semver.SemVersionRange.#ctor(System.Collections.Generic.IReadOnlyList{Semver.UnbrokenSemVersionRange})">
<remarks>Parameter validation is not performed. The <paramref name="ranges"/> must be
an immutable list of properly ordered and combined ranges.</remarks>
</member>
<member name="M:Semver.SemVersionRange.Contains(Semver.SemVersion)">
<summary>
Determine whether this range contains the given version.
</summary>
<param name="version">The version to test against the range.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersionRange.op_Implicit(Semver.SemVersionRange)~System.Predicate{Semver.SemVersion}">
<summary>
Convert this range into a predicate function indicating whether a version is contained
in the range.
</summary>
<param name="range">The range to convert into a predicate function.</param>
<returns>A predicate that indicates whether a given version is contained in this range.</returns>
</member>
<member name="M:Semver.SemVersionRange.Parse(System.String,Semver.SemVersionRangeOptions,System.Int32)">
<summary>
Convert a version range string in the <a href="https://semver-nuget.org/ranges/">standard
range syntax</a> into a <see cref="T:Semver.SemVersionRange"/> using the given options.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.</param>
<param name="options">A bitwise combination of enumeration values that indicates the style
elements that can be present in <paramref name="range"/> and the options to use when
constructing the range.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<exception cref="T:System.ArgumentException"><paramref name="options"/> is not a valid
<see cref="T:Semver.SemVersionRangeOptions"/> value.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is <see langword="null"/>.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid or not in a
format compliant with <paramref name="options"/>.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersionRange.Parse(System.String,System.Int32)">
<summary>
Convert a version range string in the <a href="https://semver-nuget.org/ranges/">standard
range syntax</a> into a <see cref="T:Semver.SemVersionRange"/> using the
<see cref="F:Semver.SemVersionRangeOptions.Strict"/> option.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is <see langword="null"/>.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid or not in a
format compliant with the <see cref="F:Semver.SemVersionRangeOptions.Strict"/> option.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
</member>
<member name="M:Semver.SemVersionRange.TryParse(System.String,Semver.SemVersionRangeOptions,Semver.SemVersionRange@,System.Int32)">
<summary>
Convert a version range string in the <a href="https://semver-nuget.org/ranges/">standard
range syntax</a> into a <see cref="T:Semver.SemVersionRange"/> using the given options.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.</param>
<param name="options">A bitwise combination of enumeration values that indicates the style
elements that can be present in <paramref name="range"/> and the options to use when
constructing the range.</param>
<param name="semverRange">The converted <see cref="T:Semver.SemVersionRange"/>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<returns><see langword="false"/> when an invalid version range string is passed,
otherwise <see langword="true"/>.</returns>
<exception cref="T:System.ArgumentException"><paramref name="options"/> is not a valid
<see cref="T:Semver.SemVersionRangeOptions"/> value.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
</member>
<member name="M:Semver.SemVersionRange.TryParse(System.String,Semver.SemVersionRange@,System.Int32)">
<summary>
Convert a version range string in the <a href="https://semver-nuget.org/ranges/">standard
range syntax</a> into a <see cref="T:Semver.SemVersionRange"/> using the
<see cref="F:Semver.SemVersionRangeOptions.Strict"/> option.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.</param>
<param name="semverRange">The converted <see cref="T:Semver.SemVersionRange"/>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<returns><see langword="false"/> when an invalid version range string is passed,
otherwise <see langword="true"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
</member>
<member name="M:Semver.SemVersionRange.ParseNpm(System.String,System.Boolean,System.Int32)">
<summary>
Convert a version range string in the <a href="https://github.com/npm/node-semver/#ranges">
npm syntax</a> into a <see cref="T:Semver.SemVersionRange"/>.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://github.com/npm/node-semver/#ranges">npm syntax</a>.</param>
<param name="includeAllPrerelease">Whether to include all prerelease versions in the
range rather than just prerelease versions matching a prerelease identifier in the range.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is <see langword="null"/>.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
<remarks>The npm "loose" option is not supported. The
<see cref="M:Semver.SemVersionRange.Parse(System.String,Semver.SemVersionRangeOptions,System.Int32)"/> method provides more control over
parsing. However, it does not accept all of the npm syntax.</remarks>
</member>
<member name="M:Semver.SemVersionRange.ParseNpm(System.String,System.Int32)">
<summary>
Convert a version range string in the <a href="https://github.com/npm/node-semver/#ranges">
npm syntax</a> into a <see cref="T:Semver.SemVersionRange"/>.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://github.com/npm/node-semver/#ranges">npm syntax</a>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="range"/> is <see langword="null"/>.</exception>
<exception cref="T:System.FormatException">The <paramref name="range"/> is invalid.</exception>
<exception cref="T:System.OverflowException">A numeric part of a version in <paramref name="range"/>
is too large for an <see cref="T:System.Int32"/>.</exception>
<remarks>The npm "loose" option is not supported. The
<see cref="M:Semver.SemVersionRange.Parse(System.String,Semver.SemVersionRangeOptions,System.Int32)"/> method provides more control over
parsing. However, it does not accept all of the npm syntax.</remarks>
</member>
<member name="M:Semver.SemVersionRange.TryParseNpm(System.String,System.Boolean,Semver.SemVersionRange@,System.Int32)">
<summary>
Convert a version range string in the <a href="https://github.com/npm/node-semver/#ranges">
npm syntax</a> into a <see cref="T:Semver.SemVersionRange"/>.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://github.com/npm/node-semver/#ranges">npm syntax</a>.</param>
<param name="includeAllPrerelease">Whether to include all prerelease versions in the
range rather than just prerelease versions matching a prerelease identifier in the range.</param>
<param name="semverRange">The converted <see cref="T:Semver.SemVersionRange"/>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<returns><see langword="false"/> when an invalid version range string is passed,
otherwise <see langword="true"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
<remarks>The npm "loose" option is not supported. The
<see cref="M:Semver.SemVersionRange.TryParse(System.String,Semver.SemVersionRangeOptions,Semver.SemVersionRange@,System.Int32)"/> method
provides more control over parsing. However, it does not accept all of the npm syntax.</remarks>
</member>
<member name="M:Semver.SemVersionRange.TryParseNpm(System.String,Semver.SemVersionRange@,System.Int32)">
<summary>
Convert a version range string in the <a href="https://github.com/npm/node-semver/#ranges">
npm syntax</a> into a <see cref="T:Semver.SemVersionRange"/>.
</summary>
<param name="range">The version range string to parse. Accepts the
<a href="https://github.com/npm/node-semver/#ranges">npm syntax</a>.</param>
<param name="semverRange">The converted <see cref="T:Semver.SemVersionRange"/>.</param>
<param name="maxLength">The maximum length of <paramref name="range"/> that should be
parsed. This prevents attacks using very long version range strings.</param>
<returns><see langword="false"/> when an invalid version range string is passed,
otherwise <see langword="true"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="maxLength"/> is less than zero.</exception>
<remarks>The npm "loose" option is not supported. The
<see cref="M:Semver.SemVersionRange.TryParse(System.String,Semver.SemVersionRangeOptions,Semver.SemVersionRange@,System.Int32)"/> method
provides more control over parsing. However, it does not accept all of the npm syntax.</remarks>
</member>
<member name="P:Semver.SemVersionRange.Count">
<summary>
The number of <see cref="T:Semver.UnbrokenSemVersionRange"/>s that make up this range.
</summary>
<value>The number of <see cref="T:Semver.UnbrokenSemVersionRange"/>s that make up this range.</value>
</member>
<member name="P:Semver.SemVersionRange.Item(System.Int32)">
<summary>
Get the <see cref="T:Semver.UnbrokenSemVersionRange"/> making up this range at the given index.
</summary>
<param name="index">The zero-based index of the <see cref="T:Semver.UnbrokenSemVersionRange"/> to
get.</param>
<returns>The <see cref="T:Semver.UnbrokenSemVersionRange"/> making up this range at the given
index.</returns>
</member>
<member name="M:Semver.SemVersionRange.GetEnumerator">
<summary>
Get an enumerator that iterates through the <see cref="T:Semver.UnbrokenSemVersionRange"/>s
making up this range.
</summary>
<returns>An enumerator that iterates through the <see cref="T:Semver.UnbrokenSemVersionRange"/>s
making up this range.</returns>
</member>
<member name="M:Semver.SemVersionRange.System#Collections#IEnumerable#GetEnumerator">
<summary>
Get an enumerator that iterates through the <see cref="T:Semver.UnbrokenSemVersionRange"/>s
making up this range.
</summary>
<returns>An enumerator that iterates through the <see cref="T:Semver.UnbrokenSemVersionRange"/>s
making up this range.</returns>
</member>
<member name="M:Semver.SemVersionRange.Equals(Semver.SemVersionRange)">
<summary>
Determines whether two version ranges are equal. Due to the complexity of ranges, it may
be possible for two ranges to match the same set of versions but be expressed in
different ways and so not be equal.
</summary>
<returns><see langword="true"/> if <paramref name="other"/> is equal to the this range;
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersionRange.Equals(System.Object)">
<summary>
Determines whether the given object is equal to this range. Due to the complexity of
ranges, it may be possible for two ranges to match the same set of versions but be
expressed in different ways and so not be equal.
</summary>
<returns><see langword="true"/> if <paramref name="obj"/> is equal to the this range;
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersionRange.GetHashCode">
<summary>
Gets a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms
and data structures like a hash table.
</returns>
</member>
<member name="M:Semver.SemVersionRange.op_Equality(Semver.SemVersionRange,Semver.SemVersionRange)">
<summary>
Determines whether two version ranges are equal. Due to the complexity of ranges, it may
be possible for two ranges to match the same set of versions but be expressed in
different ways and so not be equal.
</summary>
<returns><see langword="true"/> if the two values are equal, otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersionRange.op_Inequality(Semver.SemVersionRange,Semver.SemVersionRange)">
<summary>
Determines whether two version ranges are <em>not</em> equal. Due to the complexity of
ranges, it may be possible for two ranges to match the same set of versions but be
expressed in different ways and so not be equal.
</summary>
<returns><see langword="true"/> if the two ranges are <em>not</em> equal, otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.SemVersionRange.ToString">
<summary>
Converts this version range to an equivalent string value in
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.
</summary>
<returns>
The <see cref="T:System.String" /> equivalent of this version in
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.
</returns>
<remarks>Because version ranges are simplified and sorted, this method may return
a different, but equivalent, range string from the originally parsed one. Ranges
including all prerelease versions are indicated with the idiom of prefixing each
comparison group with "<c>*-*</c>". This includes all prerelease versions because it
matches all prerelease versions.</remarks>
</member>
<member name="T:Semver.SemVersionRangeOptions">
<summary>
<para>Determines the parsing options and allowed styles of range and version strings passed
to the <see cref="M:Semver.SemVersionRange.Parse(System.String,Semver.SemVersionRangeOptions,System.Int32)"/> and
<see cref="M:Semver.SemVersionRange.TryParse(System.String,Semver.SemVersionRangeOptions,Semver.SemVersionRange@,System.Int32)"/>
methods. These styles only affect which strings are accepted when parsing. The
constructed ranges and version numbers are valid semantic version ranges without any of the
optional features in the original string.</para>
<para>Most options only allow additional version styles. However, the
<see cref="F:Semver.SemVersionRangeOptions.IncludeAllPrerelease"/> option modifies how version ranges are interpreted. With
this option, all prerelease versions within the range bounds will be considered to be in the
range. Without this option, only prerelease versions where one comparison with the same
major, minor, and patch versions is prerelease will satisfy the range. For more information,
see the <a href="https://semver-nuget.org/ranges/">range expressions documentation</a>.</para>
<para>This enumeration supports a bitwise combination of its member values (e.g.
<c>SemVersionRangeOptions.OptionalPatch | SemVersionRangeOptions.AllowV</c>).</para>
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.Strict">
<summary>
Accept versions strictly conforming to the SemVer 2.0 spec without metadata.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.AllowLeadingZeros">
<summary>
<para>Allow leading zeros on major, minor, patch, and prerelease version numbers.</para>
<para>Leading zeros will be removed from the constructed version number.</para>
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.AllowLowerV">
<summary>
Allow a leading lowercase "v" on versions.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.AllowUpperV">
<summary>
Allow a leading uppercase "V" on versions.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.AllowV">
<summary>
Allow a leading "v" or "V" on versions.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.OptionalPatch">
<summary>
Patch version number is optional on versions.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.OptionalMinorPatch">
<summary>
Minor and patch version numbers are optional on versions.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.IncludeAllPrerelease">
<summary>
Include all prerelease versions in the range rather than just prerelease versions
matching a prerelease identifier in the range.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.AllowMetadata">
<summary>
Allow version numbers with build metadata in version range expressions. The metadata
will be removed/ignored for the definition of the version range.
</summary>
</member>
<member name="F:Semver.SemVersionRangeOptions.Loose">
<summary>
<para>Accept any version string format supported.</para>
<para>The formats accepted by this style will change if/when more formats are supported.</para>
</summary>
</member>
<member name="M:Semver.SemVersionRangeOptionsExtensions.HasOption(Semver.SemVersionRangeOptions,Semver.SemVersionRangeOptions)">
<summary>
The <see cref="M:System.Enum.HasFlag(System.Enum)"/> method is surprisingly slow. This provides
a fast alternative for the <see cref="T:Semver.SemVersionRangeOptions"/> enum.
</summary>
</member>
<member name="T:Semver.SemVersionStyles">
<summary>
<para>Determines the styles that are allowed in version strings passed to the
<see cref="M:Semver.SemVersion.Parse(System.String,Semver.SemVersionStyles,System.Int32)"/> and
<see cref="M:Semver.SemVersion.TryParse(System.String,Semver.SemVersionStyles,Semver.SemVersion@,System.Int32)"/>
methods. These styles only affect which strings are accepted when parsing. The
constructed version numbers are valid semantic versions without any of the
optional features in the original string.</para>
<para>This enumeration supports a bitwise combination of its member values (e.g.
<c>SemVersionStyles.AllowWhitespace | SemVersionStyles.AllowV</c>).</para>
</summary>
</member>
<member name="F:Semver.SemVersionStyles.Strict">
<summary>
Accept version strings strictly conforming to the SemVer 2.0 spec.
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowLeadingZeros">
<summary>
<para>Allow leading zeros on major, minor, patch, and prerelease version numbers.</para>
<para>Leading zeros will be removed from the constructed version number.</para>
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowLeadingWhitespace">
<summary>
Allow leading whitespace. When combined with leading "v", the whitespace
must come before the "v".
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowTrailingWhitespace">
<summary>
Allow trailing whitespace.
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowWhitespace">
<summary>
Allow leading and/or trailing whitespace. When combined with leading "v",
the leading whitespace must come before the "v".
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowLowerV">
<summary>
Allow a leading lowercase "v".
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowUpperV">
<summary>
Allow a leading uppercase "V".
</summary>
</member>
<member name="F:Semver.SemVersionStyles.AllowV">
<summary>
Allow a leading "v" or "V".
</summary>
</member>
<member name="F:Semver.SemVersionStyles.OptionalPatch">
<summary>
Patch version number is optional.
</summary>
</member>
<member name="F:Semver.SemVersionStyles.OptionalMinorPatch">
<summary>
Minor and patch version numbers are optional.
</summary>
</member>
<member name="F:Semver.SemVersionStyles.Any">
<summary>
<para>Accept any version string format supported.</para>
<para>The formats accepted by this style will change if/when more formats are supported.</para>
</summary>
</member>
<member name="M:Semver.SemVersionStylesExtensions.HasStyle(Semver.SemVersionStyles,Semver.SemVersionStyles)">
<summary>
The <see cref="M:System.Enum.HasFlag(System.Enum)"/> method is surprisingly slow. This provides
a fast alternative for the <see cref="T:Semver.SemVersionStyles"/> enum.
</summary>
</member>
<member name="T:Semver.UnbrokenSemVersionRange">
<summary>
A range of <see cref="T:Semver.SemVersion"/> values with no gaps. The more general and flexible range
class <see cref="T:Semver.SemVersionRange"/> is typically used instead. It combines multiple
<see cref="T:Semver.UnbrokenSemVersionRange"/>s. <see cref="T:Semver.UnbrokenSemVersionRange"/> can be used
directly if it is important to reflect that something must be a range with no gaps in it.
</summary>
<remarks>An <see cref="T:Semver.UnbrokenSemVersionRange"/> is represented as an interval between two
versions, the <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> and <see cref="P:Semver.UnbrokenSemVersionRange.End"/>. For each, that version may or may
not be included.</remarks>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.Empty">
<summary>
A standard representation for the empty range that contains no versions.
</summary>
<value>A standard representation for the empty range that contains no versions.</value>
<remarks><para>There are an infinite number of ways to represent the empty range. Any range
where the start is greater than the end or where start equals end but one is not
inclusive would be empty.
See https://en.wikipedia.org/wiki/Interval_(mathematics)#Classification_of_intervals</para>
<para>Since all <see cref="T:Semver.UnbrokenSemVersionRange"/> objects have a <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> and
<see cref="P:Semver.UnbrokenSemVersionRange.End"/>, the only unique empty range is the one whose start is the max
version and end is the minimum version.</para>
</remarks>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.AllRelease">
<summary>
The range that contains all release versions but no prerelease versions.
</summary>
<value>The range that contains all release versions but no prerelease versions.</value>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.All">
<summary>
The range that contains both all release and prerelease versions.
</summary>
<value>The range that contains both all release and prerelease versions.</value>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Equals(Semver.SemVersion)">
<summary>
Construct a range containing only a single version.
</summary>
<param name="version">The version the range should contain.</param>
<returns>A range containing only the given version.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.GreaterThan(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions greater than the given version.
</summary>
<param name="version">The range will contain all versions greater than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions greater than the given version.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.AtLeast(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions equal to or greater than the given version.
</summary>
<param name="version">The range will contain all versions greater than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions greater than or equal to the given version.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.LessThan(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions less than the given version.
</summary>
<param name="version">The range will contain all versions less than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions less than the given version.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.AtMost(Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing versions equal to or less than the given version.
</summary>
<param name="version">The range will contain all versions less than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given version if it is prerelease.</param>
<returns>A range containing versions less than or equal to the given version.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Inclusive(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions including those versions.
</summary>
<param name="start">The range will contain only versions greater than or equal to this.</param>
<param name="end">The range will contain only versions less than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including those versions.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.InclusiveOfStart(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions including the start
but not the end.
</summary>
<param name="start">The range will contain only versions greater than or equal to this.</param>
<param name="end">The range will contain only versions less than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including the start but
not the end.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.InclusiveOfEnd(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions including the end but
not the start.
</summary>
<param name="start">The range will contain only versions greater than this.</param>
<param name="end">The range will contain only versions less than or equal to this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including the end but
not the start.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Exclusive(Semver.SemVersion,Semver.SemVersion,System.Boolean)">
<summary>
Construct a range containing all versions between the given versions excluding those versions.
</summary>
<param name="start">The range will contain only versions greater than this.</param>
<param name="end">The range will contain only versions less than this.</param>
<param name="includeAllPrerelease">Include all prerelease versions in the range rather
than just those matching the given versions if they are prerelease.</param>
<returns>A range containing versions between the given versions including the end but
not the start.</returns>
</member>
<member name="F:Semver.UnbrokenSemVersionRange.allPrereleaseCoveredByEnds">
<summary>
If this <see cref="P:Semver.UnbrokenSemVersionRange.IncludeAllPrerelease"/> and those prerelease versions are entirely
covered by the left and right bounds so that effectively, it doesn't need to include all
prerelease.
</summary>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.Start">
<summary>
The start, left limit, or minimum of this range. Can be <see langword="null"/>.
</summary>
<value>The start or left end of this range. Can be <see langword="null"/>.</value>
<remarks>Ranges with no lower bound have a <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> value
of <see langword="null"/>. This ensures that they do not unintentionally include any
prerelease versions.</remarks>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.StartInclusive">
<summary>
Whether this range includes the <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> value.
</summary>
<value>Whether this range includes the <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> value.</value>
<remarks>When <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> is <see langword="null"/>, <see cref="P:Semver.UnbrokenSemVersionRange.StartInclusive"/>
will always be <see langword="false"/>.</remarks>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.End">
<summary>
The end, right limit, or maximum of this range. Cannot be null.
</summary>
<value>The end, right limit, or maximum of this range. Cannot be null.</value>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.EndInclusive">
<summary>
Whether this range includes the <see cref="P:Semver.UnbrokenSemVersionRange.End"/> value.
</summary>
<value>Whether this range includes the <see cref="P:Semver.UnbrokenSemVersionRange.End"/> value.</value>
</member>
<member name="P:Semver.UnbrokenSemVersionRange.IncludeAllPrerelease">
<summary>
Whether this range includes all prerelease versions between <see cref="P:Semver.UnbrokenSemVersionRange.Start"/> and
<see cref="P:Semver.UnbrokenSemVersionRange.End"/>. If <see cref="P:Semver.UnbrokenSemVersionRange.IncludeAllPrerelease"/> is <see langword="false"/> then
prerelease versions matching the major, minor, and patch version of the <see cref="P:Semver.UnbrokenSemVersionRange.Start"/>
or <see cref="P:Semver.UnbrokenSemVersionRange.End"/> will be included only if that end is a prerelease version.
</summary>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Contains(Semver.SemVersion)">
<summary>
Determine whether this range contains the given version.
</summary>
<param name="version">The version to test against the range.</param>
<returns><see langword="true"/> if the version is contained in the range,
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.op_Implicit(Semver.UnbrokenSemVersionRange)~System.Predicate{Semver.SemVersion}">
<summary>
Convert this range into a predicate function indicating whether a version is contained
in the range.
</summary>
<param name="range">The range to convert into a predicate function.</param>
<returns>A predicate that indicates whether a given version is contained in this range.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Equals(Semver.UnbrokenSemVersionRange)">
<summary>
Determines whether two version ranges are equal.
</summary>
<returns><see langword="true"/> if <paramref name="other"/> is equal to the this range;
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Equals(System.Object)">
<summary>
Determines whether the given object is equal to this range.
</summary>
<returns><see langword="true"/> if <paramref name="obj"/> is equal to the this range;
otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.GetHashCode">
<summary>
Gets a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms
and data structures like a hash table.
</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.op_Equality(Semver.UnbrokenSemVersionRange,Semver.UnbrokenSemVersionRange)">
<summary>
Determines whether two version ranges are equal.
</summary>
<returns><see langword="true"/> if the two values are equal, otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.op_Inequality(Semver.UnbrokenSemVersionRange,Semver.UnbrokenSemVersionRange)">
<summary>
Determines whether two version ranges are <em>not</em> equal. Due to the complexity of
ranges, it may be possible for two ranges to match the same set of versions but be
expressed in different ways and so not be equal.
</summary>
<returns><see langword="true"/> if the two ranges are <em>not</em> equal, otherwise <see langword="false"/>.</returns>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.ToString">
<summary>
Converts this version range to an equivalent string value in
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.
</summary>
<returns>
The <see cref="T:System.String" /> equivalent of this version in
<a href="https://semver-nuget.org/ranges/">standard range syntax</a>.
</returns>
<remarks>Ranges including all prerelease versions are indicated with the idiom of prefixing
with "<c>*-*</c>". This includes all prerelease versions because it matches all prerelease
versions.</remarks>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.Contains(Semver.UnbrokenSemVersionRange)">
<summary>
Whether this range contains the other. For this to be the case, it must contain all the
versions accounting for which prerelease versions are in each range.
</summary>
</member>
<member name="M:Semver.UnbrokenSemVersionRange.TryUnion(Semver.UnbrokenSemVersionRange,Semver.UnbrokenSemVersionRange@)">
<summary>
Try to union this range with the other. This is a complex operation because it must
account for prerelease versions that may be accepted at the endpoints of the ranges.
</summary>
</member>
<member name="M:Semver.Utility.CharExtensions.IsDigit(System.Char)">
<summary>
Is this character an ASCII digit '0' through '9'
</summary>
</member>
<member name="M:Semver.Utility.CharExtensions.IsAlphaOrHyphen(System.Char)">
<summary>
Is this character and ASCII alphabetic character or hyphen [A-Za-z-]
</summary>
</member>
<member name="T:Semver.Utility.CombinedHashCode">
<summary>
Combine hash codes in a good way since <c>System.HashCode</c> isn't available.
</summary>
<remarks>Algorithm based on HashHelpers previously used in the core CLR.
https://github.com/dotnet/coreclr/blob/456afea9fbe721e57986a21eb3b4bb1c9c7e4c56/src/System.Private.CoreLib/shared/System/Numerics/Hashing/HashHelpers.cs
</remarks>
</member>
<member name="T:Semver.Utility.DebugChecks">
<summary>
The <see cref="T:Semver.Utility.DebugChecks"/> class allows for the various conditional checks done only in
debug builds to not count against the code coverage metrics.
</summary>
<remarks>When using a preprocessor conditional block, the contained lines are not covered by
the unit tests (see example below). This is expected because the conditions should not be
reachable. But it makes it difficult to evaluate at a glance whether full code coverage has
been reached.
<code>
#if DEBUG
if(condition) throw new Exception("...");
#endif
</code>
</remarks>
</member>
<member name="M:Semver.Utility.DebugChecks.IsNotFailedException(System.Exception,System.String,System.String)">
<summary>
This check ensures that an exception hasn't been constructed, but rather something always
returns <see cref="F:Semver.Utility.VersionParsing.FailedException"/>.
</summary>
</member>
<member name="T:Semver.Utility.IdentifierString">
<summary>
Methods for working with the strings that make up identifiers
</summary>
</member>
<member name="M:Semver.Utility.IdentifierString.Compare(System.String,System.String)">
<summary>
Compare two strings as they should be compared as identifiers.
</summary>
<remarks>This enforces ordinal comparision. It also fixes a technically
correct but odd thing where the comparision result can be a number
other than -1, 0, or 1.</remarks>
</member>
<member name="M:Semver.Utility.IntExtensions.DecimalDigits(System.Int32)">
<summary>
The number of digits in a non-negative number. Returns 1 for all
negative numbers. That is ok because we are using it to calculate
string length for a <see cref="T:System.Text.StringBuilder"/> for numbers that
aren't supposed to be negative, but when they are it is just a little
slower.
</summary>
<remarks>
This approach is based on https://stackoverflow.com/a/51099524/268898
where the poster offers performance benchmarks showing this is the
fastest way to get a number of digits.
</remarks>
</member>
<member name="T:Semver.Utility.ReadOnlyList`1">
<summary>
Internal helper for efficiently creating empty read only lists
</summary>
</member>
<member name="M:Semver.Utility.StringExtensions.IsDigits(System.String)">
<summary>
Is this string composed entirely of ASCII digits '0' to '9'?
</summary>
</member>
<member name="M:Semver.Utility.StringExtensions.IsAlphanumericOrHyphens(System.String)">
<summary>
Is this string composed entirely of ASCII alphanumeric characters and hyphens?
</summary>
</member>
<member name="M:Semver.Utility.StringExtensions.SplitAndMapToReadOnlyList``1(System.String,System.Char,System.Func{System.String,``0})">
<summary>
Split a string, map the parts, and return a read only list of the values.
</summary>
<remarks>Splitting a string, mapping the result and storing into a <see cref="T:System.Collections.Generic.IReadOnlyList`1"/>
is a common operation in this package. This method optimizes that. It avoids the
performance overhead of:
<list type="bullet">
<item><description>Constructing the params array for <see cref="M:System.String.Split(System.Char[])"/></description></item>
<item><description>Constructing the intermediate <see cref="T:string[]"/> returned by <see cref="M:System.String.Split(System.Char[])"/></description></item>
<item><description><see cref="M:System.Linq.Enumerable.Select``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})"/></description></item>
<item><description>Not allocating list capacity based on the size</description></item>
</list>
Benchmarking shows this to be 30%+ faster and that may not reflect the whole benefit
since it doesn't fully account for reduced allocations.
</remarks>
</member>
<member name="M:Semver.Utility.StringExtensions.TrimLeadingZeros(System.String)">
<summary>
Trim leading zeros from a numeric string. If the string consists of all zeros, return
<c>"0"</c>.
</summary>
<remarks>The standard <see cref="M:System.String.TrimStart(System.Char[])"/> method handles all zeros
by returning <c>""</c>. This efficiently handles the kind of trimming needed.</remarks>
</member>
<member name="T:Semver.Utility.StringSegment">
<summary>
An efficient representation of a section of a string
</summary>
</member>
<member name="M:Semver.Utility.StringSegment.TrimLeadingZeros">
<summary>
Trim leading zeros from a numeric string segment. If the segment consists of all zeros,
return <c>"0"</c>.
</summary>
<remarks>The standard <see cref="M:System.String.TrimStart(System.Char[])"/> method handles all zeros
by returning <c>""</c>. This efficiently handles the kind of trimming needed.</remarks>
</member>
<member name="T:Semver.Utility.Unreachable">
<summary>
Used to clearly mark when a case should be unreachable and helps properly manage code coverage.
</summary>
</member>
<member name="T:Semver.Utility.UnsafeOverload">
<summary>
Struct used as a marker to differentiate constructor overloads that would
otherwise be the same as safe overloads.
</summary>
</member>
<member name="F:Semver.Utility.VersionParsing.FailedException">
<remarks>
This exception is used with the
<see cref="M:Semver.Parsing.SemVersionParser.Parse(System.String,Semver.SemVersionStyles,System.Exception,System.Int32,Semver.SemVersion@)"/>
method to indicate parse failure without constructing a new exception.
This exception should never be thrown or exposed outside of this
package.
</remarks>
</member>
</members>
</doc>