weavatrix-memory 0.2.0

Event-sourced, bitemporal context compiler for coding agents
Documentation
mod event;
mod evidence;
mod fact;
mod node;
mod view;

pub use event::MemoryEvent;
pub use evidence::{Confidence, Evidence};
pub use fact::MemoryFact;
pub use node::MemoryNode;
pub use view::MemoryView;

use crate::{MemoryError, Result};

pub(crate) fn validate_text(field: &'static str, value: &str) -> Result<()> {
    if value.is_empty() || value.trim() != value {
        return Err(MemoryError::InvalidValue {
            field,
            reason: "must be non-empty without surrounding whitespace",
        });
    }
    Ok(())
}

pub(crate) fn validate_optional_text(field: &'static str, value: Option<&str>) -> Result<()> {
    value.map_or(Ok(()), |value| validate_text(field, value))
}