Пример #1
0
 public static GenderedItem <TItem?> Parse <TItem>(
     MutagenFrame frame,
     RecordType maleMarker,
     RecordType femaleMarker,
     UtilityTranslation.BinarySubParseDelegate <TItem> transl,
     bool skipMarker)
     where TItem : class
 {
     TItem?male = default, female = default;
Пример #2
0
 public static GenderedItem <TItem> Parse <TItem>(
     MutagenFrame frame,
     UtilityTranslation.BinarySubParseDelegate <TItem> transl)
 {
     if (!transl(frame, out var male))
     {
         throw new ArgumentException();
     }
     if (!transl(frame, out var female))
     {
         throw new ArgumentException();
     }
     return(new GenderedItem <TItem>(male, female));
 }
Пример #3
0
 public IReadOnlyDictionary <TEnum, TValue> Parse <TEnum>(
     MutagenFrame frame,
     IDictionary <TEnum, TValue> item,
     UtilityTranslation.BinarySubParseDelegate <TValue> transl)
     where TEnum : struct, Enum, IConvertible
 {
     foreach (var e in EnumBinaryTranslation <TEnum> .Values)
     {
         if (!transl(frame, out var parse))
         {
             throw new ArgumentException();
         }
         item[e] = parse;
     }
     return((IReadOnlyDictionary <TEnum, TValue>)item);
 }
Пример #4
0
 public IReadOnlyDictionary <TEnum, TValue> Parse <TEnum>(
     MutagenFrame frame,
     IDictionary <TEnum, TValue> item,
     UtilityTranslation.BinarySubParseDelegate <TValue> transl)
     where TEnum : struct, Enum, IConvertible
 {
     for (int i = 0; i < EnumBinaryTranslation <TEnum> .EnumSize; i++)
     {
         if (!transl(frame, out var parse))
         {
             throw new ArgumentException();
         }
         item[EnumExt.GetNth <TEnum>(i)] = parse;
     }
     return((IReadOnlyDictionary <TEnum, TValue>)item);
 }