guilded_util 0.1.0-dev.6

Utility crate for the Guilded-rs Ecosystem.
Documentation
use guilded_model::messaging::embed::ChatEmbedField;
use guilded_validation::embed::field::{self, ChatEmbedFieldValidationError};

#[derive(Clone, Debug, Eq, PartialEq)]
#[must_use = "must be built into an embed field"]
pub struct ChatEmbedFieldBuilder(ChatEmbedField);

impl ChatEmbedFieldBuilder {
    pub fn new(name: String, value: String) -> Result<Self, ChatEmbedFieldValidationError> {
        field::validate_field_name_length(&name)?;
        field::validate_field_value_length(&value)?;

        Ok(Self(ChatEmbedField {
            inline: None,
            name,
            value,
        }))
    }

    #[must_use = "should be used as part of an embed"]
    pub fn build(self) -> ChatEmbedField {
        self.0
    }

    pub fn inline(mut self, inline: bool) -> Self {
        self.0.inline.replace(inline);
        self
    }
}