use super::ttsr::Rule;
use oxicode_ai::AssistantMessage;
pub enum StreamOutcome {
Complete(AssistantMessage),
Cancelled(AssistantMessage),
RuleInterrupt {
partial: AssistantMessage,
rule: Rule,
},
Error {
message: AssistantMessage,
detail: String,
},
}
impl StreamOutcome {
pub fn into_message(self) -> AssistantMessage {
match self {
StreamOutcome::Complete(m)
| StreamOutcome::Cancelled(m)
| StreamOutcome::Error { message: m, .. } => m,
StreamOutcome::RuleInterrupt { partial, .. } => partial,
}
}
}