///|
pub struct LocalService {
name : String
command : Array[String]
readiness_url : String
} derive(Debug, Eq)
///|
pub fn LocalService::new(
name~ : String,
command~ : Array[String],
readiness_url~ : String,
) -> LocalService {
{ name, command: command.copy(), readiness_url }
}
///|
pub fn LocalService::name(self : LocalService) -> String {
self.name
}
///|
pub fn LocalService::command(self : LocalService) -> Array[String] {
self.command.copy()
}
///|
pub fn LocalService::readiness_url(self : LocalService) -> String {
self.readiness_url
}
///|
pub fn LocalService::validate(self : LocalService) -> Array[String] {
let problems : Array[String] = []
if self.name == "" {
problems.push("local service name is required")
}
if self.command.is_empty() {
problems.push("local service command is required")
}
for part in self.command {
if part == "" {
problems.push("local service command entries must not be empty")
}
}
if self.readiness_url == "" {
problems.push("local service readiness url is required")
}
problems
}
///|
pub fn LocalService::to_json(self : LocalService) -> String {
[
"{",
"\"name\":\{self.name.json_string()},",
"\"command\":[\{self.command.map(fn(part) { part.json_string() }).join(",")}],",
"\"readinessUrl\":\{self.readiness_url.json_string()}",
"}",
].join("")
}