apply method
Implementation
@override
Future<String> apply(String content, Map<String, dynamic> context) async {
return content.replaceAllMapped(_substrRegex, (match) {
final strExpr = match.group(1)!.trim();
final startExpr = match.group(2)!.trim();
final lengthExpr = match.group(3)?.trim();
try {
final str = _evaluate(strExpr, context).toString();
final start = int.parse(_evaluate(startExpr, context).toString());
if (lengthExpr != null) {
final length = int.parse(_evaluate(lengthExpr, context).toString());
return str.substring(start, start + length);
} else {
return str.substring(start);
}
} catch (_) {
return '';
}
});
}