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