TraceState.fromString constructor

TraceState.fromString(
  1. String? headerValue
)

Create TraceState from a W3C trace context header string

Implementation

factory TraceState.fromString(String? headerValue) {
  final factory = OTelFactory.getOrCreateDefault();
  if (headerValue == null || headerValue.isEmpty) {
    return factory.traceState({});
  }

  final entries = <String, String>{};
  final pairs = headerValue.split(',');

  for (var pair in pairs) {
    final keyValue = pair.trim().split('=');
    if (keyValue.length == 2 &&
        _isValidKey(keyValue[0]) &&
        _isValidValue(keyValue[1])) {
      entries[keyValue[0]] = keyValue[1];
      if (entries.length >= _maxKeyValuePairs) break;
    }
  }

  return factory.traceState(entries);
}