temporalio_common_wasm/
worker.rs1use crate::protos::{coresdk, temporal};
4use std::str::FromStr;
5
6#[derive(Clone, Debug, Eq, PartialEq, Hash, bon::Builder)]
8#[builder(on(String, into), state_mod(vis = "pub"))]
9#[non_exhaustive]
10pub struct WorkerDeploymentVersion {
11 pub deployment_name: String,
13 pub build_id: String,
15}
16
17impl WorkerDeploymentVersion {
18 pub fn is_empty(&self) -> bool {
20 self.deployment_name.is_empty() && self.build_id.is_empty()
21 }
22}
23
24impl FromStr for WorkerDeploymentVersion {
25 type Err = ();
26
27 fn from_str(s: &str) -> Result<Self, Self::Err> {
28 match s.split_once('.') {
29 Some((name, build_id)) => Ok(WorkerDeploymentVersion {
30 deployment_name: name.to_owned(),
31 build_id: build_id.to_owned(),
32 }),
33 _ => Err(()),
34 }
35 }
36}
37
38impl From<WorkerDeploymentVersion> for coresdk::common::WorkerDeploymentVersion {
39 fn from(v: WorkerDeploymentVersion) -> coresdk::common::WorkerDeploymentVersion {
40 coresdk::common::WorkerDeploymentVersion {
41 deployment_name: v.deployment_name,
42 build_id: v.build_id,
43 }
44 }
45}
46
47impl From<coresdk::common::WorkerDeploymentVersion> for WorkerDeploymentVersion {
48 fn from(v: coresdk::common::WorkerDeploymentVersion) -> WorkerDeploymentVersion {
49 WorkerDeploymentVersion {
50 deployment_name: v.deployment_name,
51 build_id: v.build_id,
52 }
53 }
54}
55
56impl From<temporal::api::deployment::v1::WorkerDeploymentVersion> for WorkerDeploymentVersion {
57 fn from(v: temporal::api::deployment::v1::WorkerDeploymentVersion) -> Self {
58 Self {
59 deployment_name: v.deployment_name,
60 build_id: v.build_id,
61 }
62 }
63}