internal static VersionStamp Custom(ulong version, ushort order, int userVersion, bool incomplete)
 {
     Contract.Between(userVersion, 0, 0xFFFF, nameof(userVersion), "Local version must fit in 16-bits.");
     return(new VersionStamp(version, order, (ushort)userVersion, incomplete ? (ushort)(FLAGS_IS_INCOMPLETE | FLAGS_HAS_VERSION) : FLAGS_HAS_VERSION));
 }
 public static VersionStamp Complete(ulong version, ushort order, int userVersion)
 {
     Contract.Between(userVersion, 0, 0xFFFF, nameof(userVersion), "Local version must fit in 16-bits, and cannot be 0xFFFF.");
     return(new VersionStamp(version, order, (ushort)userVersion, FLAGS_HAS_VERSION));
 }
 public static VersionStamp Incomplete(int userVersion)
 {
     Contract.Between(userVersion, 0, 0xFFFF, nameof(userVersion), "Local version must fit in 16-bits.");
     return(new VersionStamp(PLACEHOLDER_VERSION, PLACEHOLDER_ORDER, (ushort)userVersion, FLAGS_IS_INCOMPLETE | FLAGS_HAS_VERSION));
 }