tryParseTraceSpan function

ReplayTraceSummarySpan? tryParseTraceSpan(
  1. String path,
  2. int lineNumber,
  3. String line
)

Try to parse a single trace line as a timed span.

Returns null if the line does not match the expected format: [+123us] [tag] message 456us

Implementation

ReplayTraceSummarySpan? tryParseTraceSpan(
  String path,
  int lineNumber,
  String line,
) {
  final durationMatch = RegExp(r' (\d+)us$').firstMatch(line);
  if (durationMatch == null) return null;
  final durationUs = int.tryParse(durationMatch.group(1)!);
  if (durationUs == null) return null;

  final tagMatch = RegExp(r'^\[\+\d+us\] \[([^\]]+)\] (.*)$').firstMatch(line);
  if (tagMatch == null) return null;
  final message = tagMatch.group(2)!;
  return ReplayTraceSummarySpan(
    path: path,
    lineNumber: lineNumber,
    tag: tagMatch.group(1)!,
    message: message,
    durationUs: durationUs,
  );
}