use std::time::{Duration, SystemTime};
use super::error::AionSurfaceError;
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct Payload {
pub data: Vec<u8>,
pub content_type: String,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ActivityRequest {
pub activity_type: String,
pub input: Payload,
pub task_queue: String,
pub schedule_to_close_timeout: Option<Duration>,
pub start_to_close_timeout: Option<Duration>,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum ActivityResult {
Completed { output: Payload },
Failed { error: AionSurfaceError },
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct SignalPayload {
pub signal_name: String,
pub payload: Payload,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct WorkerCapacity {
pub max_concurrent: usize,
pub activity_types: Vec<String>,
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct HistoryEvent {
pub sequence: u64,
pub event_type: String,
pub timestamp: SystemTime,
pub payload: Payload,
}
#[cfg(test)]
mod tests {
use super::Payload;
#[test]
fn payload_default_is_empty() {
let payload = Payload::default();
assert!(payload.data.is_empty());
assert!(payload.content_type.is_empty());
}
}