from static method
Implementation
static Future<StreamMetadataResult> from(
String name,
ResponseStream<ReadResp> resultStream,
) async {
final result = await resultStream.toList();
if (result.isEmpty) {
return StreamMetadataResult._(
streamId: name,
state: ReadState.ok,
metadataStreamPosition: StreamPosition.start,
);
}
final resp = result.last;
switch (resp.whichContent()) {
case ReadResp_Content.event:
final event = convertToResolvedEvent(
resp.event,
);
return StreamMetadataResult._(
streamId: name,
state: ReadState.ok,
metadata: convertToMetadata(event),
metadataStreamPosition: event.originalEventNumber,
);
case ReadResp_Content.streamNotFound:
return StreamMetadataResult._(
streamId: utf8.decode(
resp.streamNotFound.streamIdentifier.streamName,
),
state: ReadState.stream_not_found,
);
case ReadResp_Content.confirmation:
case ReadResp_Content.checkpoint:
case ReadResp_Content.notSet:
default:
throw UnsupportedError('ReadResp $result is unsupported');
}
}