Пример #1
0
 public Converter(
     Sqlite.DataType dataType,
     bool utf8Text,
     Func <TField, bool>?canConvert,
     Func <TField, int>?length,
     Func <TField, long>?toInteger,
     Func <TField, double>?toFloat,
     ToSpan <TField, char>?toUtf16Text,
     AsSpan <TField, char>?asUtf16Text,
     ToSpan <TField, byte>?toUtf8Text,
     AsSpan <TField, byte>?asUtf8Text,
     ToSpan <TField, byte>?toBlob,
     AsSpan <TField, byte>?asBlob)
 {
     DataType    = dataType;
     Utf8Text    = utf8Text;
     _canConvert = canConvert;
     Length      = length;
     ToInteger   = toInteger;
     ToFloat     = toFloat;
     ToUtf16Text = toUtf16Text;
     AsUtf16Text = asUtf16Text;
     ToUtf8Text  = toUtf8Text;
     AsUtf8Text  = asUtf8Text;
     ToBlob      = toBlob;
     AsBlob      = asBlob;
 }
Пример #2
0
 private AssignmentException(
     string?memberName,
     Type memberType,
     Type resultType,
     Sqlite.DataType dataType,
     string message)
     : base(message)
 {
     MemberName = memberName;
     MemberType = memberType;
     ResultType = resultType;
     DataType   = dataType.ToString();
 }
Пример #3
0
 internal static void ThrowConversionMissing(
     string?memberName,
     Type memberType,
     Type resultType,
     Sqlite.DataType dataType)
 {
     throw new AssignmentException(
               memberName,
               memberType,
               resultType,
               dataType,
               $"No defined conversion from SQLite.{dataType} to {memberType.Name} for {resultType.Name}.{memberName}. (Add custom conversions with {nameof(ResultConverter)}.{nameof(ResultConverter.Builder)}.)");
 }
Пример #4
0
 internal static void ThrowConversionFailed(
     string?memberName,
     Type memberType,
     Type resultType,
     Sqlite.DataType dataType,
     Exception innerException)
 {
     throw new AssignmentException(
               memberName,
               memberType,
               resultType,
               dataType,
               $"Conversion failed from SQLite.{dataType} to {memberType.Name} for {resultType.Name}.{memberName}.",
               innerException);
 }
Пример #5
0
 public Column(IntPtr statement, int index)
 {
     _statement = statement;
     Index      = index;
     DataType   = Sqlite.ColumnType(statement, index);
 }