// Complex structures public static O ReadValue <T, C, O>(this IMarkedBitReader reader, BitDeserializer <T, C> deserialize, C context, string name, Func <T, O> mapper) { reader.MarkStart(); O result = mapper(deserialize(reader, context)); reader.MarkEndValue(name, result !); return(result); }
public static T ReadStructure <T, C>(this IMarkedBitReader reader, BitDeserializer <T, C> deserialize, C context, string title) { reader.MarkStart(); T result = deserialize(reader, context); reader.MarkEndTitle(title); return(result); }
public static T ReadValue <T, C>(this IMarkedBitReader reader, BitDeserializer <T, C> deserialize, C context, string name) { return(reader.ReadValue(deserialize, context, name, result => result)); }
public static T[] ReadStructureArray <T, C>(this IMarkedBitReader reader, int length, BitDeserializer <T, C> deserialize, C context, string title) { return(Enumerable.Range(0, length) .Select(counter => reader.ReadStructure(deserialize, context, title + " " + (counter + 1) + "/" + length)) .ToArray()); }