use crate::model::component::render_agent_constructor;
use cli_table::Table;
use golem_common::model::agent::RegisteredAgentType;
use serde_derive::{Deserialize, Serialize};
#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize, Table)]
#[serde(rename_all = "camelCase")]
pub struct AgentTypeView {
#[table(title = "Agent Type")]
pub agent_type: String,
#[table(title = "Constructor")]
pub constructor: String,
#[table(title = "Description")]
pub description: String,
}
impl AgentTypeView {
pub fn new(value: &RegisteredAgentType) -> Self {
Self {
agent_type: value.agent_type.type_name.clone(),
constructor: render_agent_constructor(&value.agent_type, false),
description: value.agent_type.description.clone(),
}
}
}