SpeechRecognitionResultData.h [plain text]
#pragma once
namespace WebCore {
struct SpeechRecognitionAlternativeData {
String transcript;
double confidence { 0.0 };
template<class Encoder> void encode(Encoder&) const;
template<class Decoder> static Optional<SpeechRecognitionAlternativeData> decode(Decoder&);
};
template<class Encoder>
void SpeechRecognitionAlternativeData::encode(Encoder& encoder) const
{
encoder << transcript << confidence;
}
template<class Decoder>
Optional<SpeechRecognitionAlternativeData> SpeechRecognitionAlternativeData::decode(Decoder& decoder)
{
SpeechRecognitionAlternativeData result;
if (!decoder.decode(result.transcript))
return WTF::nullopt;
if (!decoder.decode(result.confidence))
return WTF::nullopt;
return result;
}
struct SpeechRecognitionResultData {
Vector<SpeechRecognitionAlternativeData> alternatives;
bool isFinal { false };
template<class Encoder> void encode(Encoder&) const;
template<class Decoder> static Optional<SpeechRecognitionResultData> decode(Decoder&);
};
template<class Encoder>
void SpeechRecognitionResultData::encode(Encoder& encoder) const
{
encoder << alternatives << isFinal;
}
template<class Decoder>
Optional<SpeechRecognitionResultData> SpeechRecognitionResultData::decode(Decoder& decoder)
{
SpeechRecognitionResultData result;
if (!decoder.decode(result.alternatives))
return WTF::nullopt;
if (!decoder.decode(result.isFinal))
return WTF::nullopt;
return result;
}
}