Skip to main content

sloop/sources/
mod.rs

1//! Authored flow definitions live in sources.
2
3use std::fmt;
4
5use crate::flow::Flow;
6
7pub mod markdown;
8
9pub trait FlowSource {
10    fn pull(&self) -> Result<Vec<Flow>, SourceError>;
11}
12
13#[derive(Debug, Clone, PartialEq, Eq)]
14pub struct SourceError(String);
15
16impl SourceError {
17    pub fn new(message: impl Into<String>) -> Self {
18        Self(message.into())
19    }
20}
21
22impl fmt::Display for SourceError {
23    fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
24        formatter.write_str(&self.0)
25    }
26}
27
28impl std::error::Error for SourceError {}