use crate::model::text::fmt::*;
use crate::model::TemplateDescription;
use cli_table::Table;
use golem_templates::model::{GuestLanguage, GuestLanguageTier, TemplateName};
#[derive(Table)]
pub struct TemplateDescriptionTableView {
#[table(title = "Name")]
pub name: TemplateName,
#[table(title = "Language")]
pub language: GuestLanguage,
#[table(title = "Tier")]
pub tier: GuestLanguageTier,
#[table(title = "Description")]
pub description: String,
}
impl From<&TemplateDescription> for TemplateDescriptionTableView {
fn from(value: &TemplateDescription) -> Self {
Self {
name: value.name.clone(),
language: value.language,
tier: value.tier.clone(),
description: textwrap::wrap(&value.description, 30).join("\n"),
}
}
}
impl TextView for Vec<TemplateDescription> {
fn log(&self) {
log_table::<_, TemplateDescriptionTableView>(self);
}
}