tryGetAsCode function
Implementation
String? tryGetAsCode(Object? value) {
if (value is String) {
final escaped = escapeString(value);
return escaped;
} else if (value is bool) {
return '$value';
} else if (value is num) {
return '$value';
} else if (value == null) {
return '$value';
} else if (value is Enum) {
return '${value.runtimeType}.${value.name}';
} else if (value is List<(int, int)>) {
final values = <Object?>[];
for (var item in value) {
final start = tryGetAsCode(item.$1);
final end = tryGetAsCode(item.$2);
values.add(start);
values.add(end);
}
return '[${values.join(', ')}]';
} else if (value is List) {
final values = <Object?>[];
for (var item in value) {
final code = tryGetAsCode(item);
values.add(code);
}
return '[${values.join(', ')}]';
} else if (value is Set) {
final values = <Object?>[];
for (var item in value) {
final code = tryGetAsCode(item);
values.add(code);
}
return '{${values.join(', ')}}';
} else if (value is Map) {
final values = <Object?>[];
for (var key in value.keys) {
final k = tryGetAsCode(key);
final v = tryGetAsCode(value[key]);
values.add('$k: $v');
}
return '{${values.join(', ')}}';
} else if (value is Type) {
final result = '$Type';
if (result.endsWith(')')) {
if (!result.contains(',')) {
//
}
}
}
return null;
}