@@ -21,8 +21,21 @@ namespace Ubiquity.NET.Versioning
2121 /// <para>A standard .NET <see cref="Version"/> is very similar except that the bit width of each
2222 /// field is larger AND they are signed values. That is, every <see cref="FileVersionQuad"/> can
2323 /// produce a valid .NET <see cref="Version"/>. However, not every <see cref="Version"/> can result
24- /// in a valid <see cref="FileVersionQuad"/>.
24+ /// in a valid <see cref="FileVersionQuad"/>.</para>
25+ /// <para>A file version is a quad of 4 <see cref="UInt16"/> values. This is convertible to a <see cref="UInt64"/> in the
26+ /// following pattern:
27+ /// (bits are numbered with MSB as the highest numeric value [Actual byte ordering depends on platform endianess])
28+ /// <list type="table">
29+ /// <listheader><term>Field</term><term>Description</term></listheader>
30+ /// <item><term>bits 48-63</term><description> Major part of Build number</description></item>
31+ /// <item><term>bits 32-47</term><description> Minor part of Build number</description></item>
32+ /// <item><term>bits 16-31</term><description> Build part of Build number</description></item>
33+ /// <item><term>bits 0-15</term><description> Revision part of Build number (Odd Numbers indicate a CI build)</description></item>
34+ /// </list>
2535 /// </para>
36+ /// <para>A file version cast as a <see cref="UInt64"/> is <i><b>NOT</b></i> the same as an Ordered version number.
37+ /// The file version includes a "bit" for the status as a CI Build. Thus, a "file version" as a <see cref="UInt64"/> is the
38+ /// ordered version shifted left by one bit and the LSB indicates if it is a CI build</para>
2639 /// </remarks>
2740 public readonly record struct FileVersionQuad ( UInt16 Major , UInt16 Minor , UInt16 Build , UInt16 Revision )
2841 : IComparable < FileVersionQuad >
0 commit comments