trellis-rs 0.10.8

Curated public Rust facade for Trellis clients and services.
Documentation
use crate::jobs::types::JobEventType;

pub const JOBS_PREFIX: &str = "trellis.jobs";
pub const WORK_PREFIX: &str = "trellis.work";
pub const JOBS_WILDCARD: &str = "trellis.jobs.>";
pub const WORKER_HEARTBEATS_WILDCARD: &str = "trellis.jobs.workers.>";

pub fn job_event_subject(
    service: &str,
    job_type: &str,
    job_id: &str,
    event: JobEventType,
) -> String {
    format!(
        "{JOBS_PREFIX}.{service}.{job_type}.{job_id}.{}",
        event.as_token()
    )
}

pub fn work_subject(service: &str, job_type: &str) -> String {
    format!("{WORK_PREFIX}.{service}.{job_type}")
}

pub fn worker_heartbeat_subject(service: &str, job_type: &str, instance_id: &str) -> String {
    format!("{JOBS_PREFIX}.workers.{service}.{job_type}.{instance_id}.heartbeat")
}