示例#1
0
 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))));
 }
示例#2
0
 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))));
 }
示例#3
0
 public static FixedSizeDataInfo <T> Enum <T, TUnderlying>(FixedSizeDataInfo <TUnderlying> underlying)
     where T : Enum
     where TUnderlying : struct
 {
     return(Create(underlying, EnumToUnderlyingConverter <T, TUnderlying> .Instance));
 }
示例#4
0
 public static FixedSizeDataInfo <T> Enum <T>(FixedSizeDataInfo <byte> underlying)
     where T : Enum
 {
     return(Enum <T, byte>(underlying));
 }