#![warn(missing_docs)]
#[allow(unused_imports)] #[macro_use]
extern crate tracing;
use std::time::Duration;
mod activity_definition;
pub mod data_converters;
pub mod error;
mod memo;
mod priority;
mod retry_policy;
mod workflow_execution;
pub mod protos {
pub use temporalio_protos::*;
}
pub mod search_attributes;
pub mod worker;
mod workflow_definition;
pub use activity_definition::{ActivityDefinition, ActivityError, UntypedActivity};
pub use memo::Memo;
pub use priority::Priority;
pub use retry_policy::RetryPolicy;
pub use search_attributes::{
SearchAttributeError, SearchAttributeKey, SearchAttributeUpdate, SearchAttributeValue,
SearchAttributes, Timestamp,
};
pub use worker::WorkerDeploymentVersion;
pub use workflow_definition::{
HasWorkflowDefinition, QueryDefinition, SignalDefinition, UntypedWorkflow, UpdateDefinition,
WorkflowDefinition,
};
pub use workflow_execution::WorkflowExecution;
#[allow(unused_macros)]
macro_rules! dbg_panic {
($($arg:tt)*) => {
use tracing::error;
error!($($arg)*);
debug_assert!(false, $($arg)*);
};
}
#[allow(unused_imports)]
pub(crate) use dbg_panic;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ActivityCloseTimeouts {
ScheduleToClose(Duration),
StartToClose(Duration),
Both {
schedule_to_close: Duration,
start_to_close: Duration,
},
}
impl ActivityCloseTimeouts {
pub fn schedule_to_close(&self) -> Option<Duration> {
match self {
ActivityCloseTimeouts::ScheduleToClose(schedule_to_close)
| ActivityCloseTimeouts::Both {
schedule_to_close, ..
} => Some(*schedule_to_close),
_ => None,
}
}
pub fn start_to_close(&self) -> Option<Duration> {
match self {
ActivityCloseTimeouts::StartToClose(start_to_close)
| ActivityCloseTimeouts::Both { start_to_close, .. } => Some(*start_to_close),
_ => None,
}
}
}