public static FixedSizeDataInfo <T> RepresentAs <T, TBase>(FixedSizeDataInfo <TBase> @base, Func <TBase, T> fromBase, Func <T, TBase> toBase) { return(new FixedSizeDataInfo <T>( @base.SizeInBytes, (buffer) => fromBase(@base.Read(buffer)), (buffer, value) => @base.Write(buffer, toBase(value)))); }
public static FixedSizeDataInfo <T> Create <T, TRaw>(FixedSizeDataInfo <TRaw> raw, IConverter <T, TRaw> converter) { return(new FixedSizeDataInfo <T>( raw.SizeInBytes, (buffer) => converter.ConvertFrom(raw.Read(buffer)), (buffer, value) => raw.Write(buffer, converter.ConvertTo(value)))); }