trellis-rs 0.10.7

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

#[derive(Debug, Clone, PartialEq, Eq)]
pub struct JobEventHeaders {
    pub request_id: String,
    pub traceparent: String,
    pub tracestate: Option<String>,
}

impl From<&JobContext> for JobEventHeaders {
    fn from(context: &JobContext) -> Self {
        Self {
            request_id: context.request_id.clone(),
            traceparent: context.traceparent.clone(),
            tracestate: context.tracestate.clone(),
        }
    }
}

pub trait JobEventPublisher {
    type Error;

    fn publish(
        &self,
        subject: String,
        headers: JobEventHeaders,
        payload: Vec<u8>,
    ) -> impl std::future::Future<Output = Result<(), Self::Error>> + Send;
}