diff options
Diffstat (limited to 'src/library/mod.rs')
| -rw-r--r-- | src/library/mod.rs | 65 |
1 files changed, 15 insertions, 50 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs index 784ef204..74f77204 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -2,64 +2,29 @@ use crate::func::Scope; -mod align; -mod boxed; -mod breaks; -mod spacing; -mod styles; +mod structure; +mod style; -/// Useful imports for creating your own functions. -pub mod prelude { - pub use crate::func::{Command, CommandList, Function}; - pub use crate::layout::{layout_tree, Layout, LayoutContext, MultiLayout}; - pub use crate::layout::{LayoutError, LayoutResult}; - pub use crate::parsing::{parse, ParseContext, ParseError, ParseResult}; - pub use crate::syntax::{Expression, FuncHeader, SyntaxTree}; - pub use super::helpers::*; -} - -pub use align::AlignFunc; -pub use boxed::BoxFunc; -pub use breaks::{LinebreakFunc, PagebreakFunc}; -pub use spacing::{HorizontalSpaceFunc, VerticalSpaceFunc}; -pub use styles::{BoldFunc, ItalicFunc, MonospaceFunc}; +pub use structure::*; +pub use style::*; /// Create a scope with all standard functions. pub fn std() -> Scope { let mut std = Scope::new(); - std.add::<AlignFunc>("align"); - std.add::<BoxFunc>("box"); - std.add::<LinebreakFunc>("line.break"); - std.add::<LinebreakFunc>("n"); - std.add::<PagebreakFunc>("page.break"); + std.add::<Align>("align"); + std.add::<Boxed>("box"); - std.add::<HorizontalSpaceFunc>("h"); - std.add::<VerticalSpaceFunc>("v"); + std.add::<Linebreak>("line.break"); + std.add::<Linebreak>("n"); + std.add::<Pagebreak>("page.break"); - std.add::<BoldFunc>("bold"); - std.add::<ItalicFunc>("italic"); - std.add::<MonospaceFunc>("mono"); - std -} + std.add::<HorizontalSpace>("h"); + std.add::<VerticalSpace>("v"); -/// Helpers for writing custom functions. -pub mod helpers { - use super::prelude::*; + std.add::<Bold>("bold"); + std.add::<Italic>("italic"); + std.add::<Monospace>("mono"); - pub fn has_arguments(header: &FuncHeader) -> bool { - !header.args.is_empty() || !header.kwargs.is_empty() - } - - pub fn parse_maybe_body(body: Option<&str>, ctx: ParseContext) -> ParseResult<Option<SyntaxTree>> { - if let Some(body) = body { - Ok(Some(parse(body, ctx)?)) - } else { - Ok(None) - } - } - - pub fn err<S: Into<String>, T>(message: S) -> ParseResult<T> { - Err(ParseError::new(message)) - } + std } |
