Пример #1
0
        // 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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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));
 }
Пример #4
0
 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());
 }