custom<S, T extends CustomDataType<S>> static method
Literal<T>
custom<
S, T extends CustomDataType<S>>( - T value,
- T fromDatabase(
- S
)
)
Implementation
static Literal<T> custom<S, T extends CustomDataType<S>>(
T value,
T Function(S) fromDatabase,
) {
final backingType = switch (value) {
CustomDataType<bool> _ => ColumnType.boolean as ColumnType<S>,
CustomDataType<String> _ => ColumnType.text as ColumnType<S>,
CustomDataType<int> _ => ColumnType.integer as ColumnType<S>,
CustomDataType<double> _ => ColumnType.real as ColumnType<S>,
CustomDataType<Uint8List> _ => ColumnType.blob as ColumnType<S>,
CustomDataType<DateTime> _ => ColumnType.dateTime as ColumnType<S>,
_ => throw ArgumentError.value(
value,
'value',
'T in CustomDataType<T> must be String, int, double, bool, or DateTime!',
),
};
return Literal._(value, CustomExprType._(backingType, fromDatabase));
}