use bytes::Bytes;
use super::{
Correlation, DomainEventBytes, FileUploadRequest, HttpRequest, StorageOp, TimerId, TransportId,
};
#[derive(Debug)]
pub enum Effect {
Send {
transport: TransportId,
frame: Bytes,
},
Persist {
corr: Correlation,
ops: Vec<StorageOp>,
},
PersistAtomic {
corr: Correlation,
ops: Vec<StorageOp>,
},
PersistFire { ops: Vec<StorageOp> },
Http { corr: Correlation, req: HttpRequest },
UploadFile {
corr: Correlation,
req: FileUploadRequest,
},
HttpFire { req: HttpRequest },
Request {
corr: Correlation,
kind: &'static str,
payload: Bytes,
},
Emit { event: DomainEventBytes },
ScheduleTimer { id: TimerId, after_ms: u64 },
CancelTimer { id: TimerId },
}