1macro_rules! bail {
4 ($position:expr, $($message:tt)+) => {
5 return Err($crate::syntax::LocatedError::new($position, format!($($message)+)))
6 };
7}
8
9#[cfg(feature = "analysis")]
10mod analysis;
11mod asset;
12mod catalog;
13#[cfg(feature = "client-compile")]
14mod client;
15#[cfg(feature = "clients")]
16mod client_instants;
17#[cfg(feature = "clients")]
18mod client_view;
19#[cfg(feature = "clients")]
20mod clients;
21mod compiled;
22#[cfg(feature = "parse")]
23mod components;
24#[cfg(feature = "development")]
25pub mod development;
26mod english;
27mod error;
28mod escape;
29#[cfg(feature = "islands")]
30pub mod islands;
31mod label;
32#[cfg(not(feature = "i18n"))]
33mod language;
34mod message;
35mod page;
36#[cfg(feature = "parse")]
37mod parse;
38mod program;
39mod render;
40pub mod rendering;
41#[cfg(any(feature = "analysis", feature = "gates"))]
42mod slots;
43mod syntax;
44mod template;
45#[cfg(feature = "i18n")]
46mod translations;
47#[cfg(any(feature = "clients", feature = "gates"))]
48mod walk;
49#[cfg(feature = "i18n")]
50use translations as language;
51
52#[cfg(feature = "analysis")]
53pub use crate::analysis::{
54 ActionPost, Binding, FormPost, IdPattern, Step, TableLink, action_posts_with, bindings,
55 bindings_with, table_links_with,
56};
57#[cfg(all(feature = "analysis", feature = "gates"))]
58pub use crate::analysis::{AskedEntitlement, asked_entitlements};
59#[cfg(feature = "compression")]
60pub use crate::asset::Precompressed;
61pub use crate::asset::{Asset, CLIENT_SCRIPT, ENGINE_SCRIPT, STYLESHEET};
62pub use crate::catalog::{
63 Children, ComponentSpec, PropKind, PropSpec, SPECS, Submitted, field_errors, is_field_name,
64};
65#[cfg(feature = "client-compile")]
66pub use crate::client::{Client, compile_client};
67#[cfg(feature = "clients")]
68pub use crate::client_instants::instant_fields;
69#[cfg(feature = "clients")]
70pub use crate::client_view::{ClientView, plain_client_view};
71#[cfg(feature = "clients")]
72pub use crate::clients::{ClientBundle, ClientLinks, ClientShell, SCREEN_ELEMENT};
73#[cfg(all(feature = "parse", feature = "i18n"))]
74pub use crate::compiled::compile_template_with_texts;
75pub use crate::compiled::load_template;
76#[cfg(feature = "parse")]
77pub use crate::compiled::{compile_template, compile_template_with, parse_template_with_recorded};
78#[cfg(feature = "parse")]
79pub use crate::components::Components;
80pub use crate::english::english;
81pub use crate::error::{RenderError, TemplateError};
82pub use crate::escape::push_escaped;
83pub use crate::label::humanize;
84pub use crate::page::{NOTICE_TARGET, Page, ScriptNotices, notice, with_cleared_notice};
85pub use crate::template::{Template, form_fields};
86#[cfg(feature = "i18n")]
87pub use crate::translations::{CURRENCY_SYMBOLS, Language, Tone, TranslationError, Translations};
88#[cfg(all(feature = "i18n", feature = "parse"))]
89pub use crate::translations::{
90 Gap, GapKind, KeyKind, KeyUse, check_translations, translation_keys,
91};