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;
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)); }
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); }
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); }