21 lines
630 B
Rust
21 lines
630 B
Rust
//! Shared record lint primitives for memory and workflow files.
|
|
|
|
mod frontmatter;
|
|
mod slug;
|
|
|
|
pub use frontmatter::{Frontmatter, split_frontmatter};
|
|
pub use slug::{Slug, is_valid_slug};
|
|
|
|
/// Common lint errors for Markdown record syntax shared by memory and workflow.
|
|
#[derive(Debug, Clone, thiserror::Error, PartialEq, Eq)]
|
|
pub enum RecordLintError {
|
|
#[error("invalid slug `{0}`: must match ^[a-z0-9](?:[a-z0-9-]{{0,62}}[a-z0-9])?$")]
|
|
InvalidSlug(String),
|
|
|
|
#[error("malformed frontmatter: {0}")]
|
|
MalformedFrontmatter(String),
|
|
|
|
#[error("frontmatter is missing or document is empty")]
|
|
MissingFrontmatter,
|
|
}
|