// // Copyright (c) 2020-2021 science+computing ag and other contributors // // This program and the accompanying materials are made // available under the terms of the Eclipse Public License 2.0 // which is available at https://www.eclipse.org/legal/epl-2.0/ // // SPDX-License-Identifier: EPL-2.0 // use std::path::PathBuf; use serde::Deserialize; use serde::Serialize; #[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq, Hash)] #[serde(transparent)] pub struct PhaseName(String); impl PhaseName { pub fn as_str(&self) -> &str { &self.0 } } #[cfg(test)] impl From for PhaseName { fn from(s: String) -> Self { PhaseName(s) } } #[derive(Clone, Debug, Serialize, Deserialize, Eq, PartialEq)] pub enum Phase { #[serde(rename = "path")] Path(PathBuf), #[serde(rename = "script")] Text(String), }