brokkr-models::models::template_labels
Rust
Template Label Module
This module defines structures and methods for managing template labels. Template labels are used for targeting validation - templates with labels can only be instantiated into stacks that have matching labels.
Constraints
- The
template_idmust be a valid, non-nil UUID. - The
labelmust be a non-empty string. - The
labelmust not exceed 64 characters. - The
labelcannot contain whitespace.
Structs
Section titled “Structs”struct TemplateLabel
Section titled “struct TemplateLabel”pub
Derives: Queryable, Selectable, Identifiable, AsChangeset, Debug, Clone, Serialize, Deserialize, Eq, PartialEq, Hash, ToSchema
Represents a template label in the database.
Fields
Section titled “Fields”| Name | Type | Description |
|---|---|---|
id |
Uuid |
Unique identifier for the template label. |
template_id |
Uuid |
ID of the template this label is associated with. |
label |
String |
The label text (max 64 characters, no whitespace). |
created_at |
DateTime<Utc> |
Timestamp when the label was created. |
struct NewTemplateLabel
Section titled “struct NewTemplateLabel”pub
Derives: Insertable, Debug, Clone, Serialize, Deserialize, ToSchema
Represents a new template label to be inserted into the database.
Fields
Section titled “Fields”| Name | Type | Description |
|---|---|---|
template_id |
Uuid |
ID of the template this label is associated with. |
label |
String |
The label text (max 64 characters, no whitespace). |
Methods
Section titled “Methods”pub
fn new(template_id: Uuid, label: String) -> Result<Self, String>Creates a new NewTemplateLabel instance.
Parameters:
| Name | Type | Description |
|---|---|---|
template_id |
Uuid |
UUID of the template to associate the label with. |
label |
String |
The label text. Must be non-empty, max 64 characters, no whitespace. |
Returns:
Returns Ok(NewTemplateLabel) if all parameters are valid,
otherwise returns an Err with a description of the validation failure.
Source
pub fn new(template_id: Uuid, label: String) -> Result<Self, String> { // Validate template_id if template_id.is_nil() { return Err("Invalid template ID".to_string()); }
// Validate label if label.trim().is_empty() { return Err("Label cannot be empty".to_string()); }
// Check label length if label.len() > 64 { return Err("Label cannot exceed 64 characters".to_string()); }
// Check whitespace if label.contains(char::is_whitespace) { return Err("Label cannot contain whitespace".to_string()); }
Ok(NewTemplateLabel { template_id, label }) }