gh_workflow/
concurrency.rs1use derive_setters::Setters;
2use serde::{Deserialize, Serialize};
3
4use crate::expression::Expression;
5
6#[derive(Debug, Setters, Serialize, Deserialize, Clone, Default, PartialEq, Eq)]
8#[serde(rename_all = "kebab-case")]
9#[setters(strip_option, into)]
10pub struct Concurrency {
11 pub group: String,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
16 pub cancel_in_progress: Option<bool>,
17
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub limit: Option<u32>,
21}
22
23impl Concurrency {
24 pub fn new(group: impl Into<Expression>) -> Self {
25 let expr: Expression = group.into();
26 Self { group: expr.0, ..Default::default() }
27 }
28}