encodeTableColumnWidth static method
Decodes the given value
to a TableColumnWidth. This expects the
value
to have the following structure:
{
"a": <TableColumnWidth>,
"b": <TableColumnWidth>,
"type": <"fixed" | "flex" | "fraction" | "intrinsic" | "max" | "min">,
"value": <double>
}
Implementation
static Map<String, dynamic>? encodeTableColumnWidth(TableColumnWidth? value) {
Map<String, dynamic>? result;
if (value is FixedColumnWidth) {
result = {
'type': 'fixed',
'value': value.value,
};
} else if (value is FlexColumnWidth) {
result = {
'type': 'flex',
'value': value.value,
};
} else if (value is FractionColumnWidth) {
result = {
'type': 'fraction',
'value': value.value,
};
} else if (value is IntrinsicColumnWidth) {
result = {
'type': 'intrinsic',
'value': value.flex(const <RenderBox>[]),
};
} else if (value is MaxColumnWidth) {
result = {
'a': encodeTableColumnWidth(value.a),
'b': encodeTableColumnWidth(value.b),
'type': 'max',
};
} else if (value is MinColumnWidth) {
result = {
'a': encodeTableColumnWidth(value.a),
'b': encodeTableColumnWidth(value.b),
'type': 'min',
};
} else if (value != null) {
throw Exception(
'[encodeTableColumnWidth]: unknown value type: [${value.runtimeType}]',
);
}
return result;
}