mod anchor;
mod attr_code;
mod elements;
mod files;
mod screen;
mod values;
mod widget;
pub use files::{
GENERATED_DIR, Generated, find_yui_files, generate_all, generate_file, generated_path,
include_name, is_book_page_file, project_root,
};
pub use screen::{generate_for, generate_with};
pub use values::{HEX_MARK, color, const_name, pascal, set_resource_refs, text_expr};
pub use yog_formats::yui::{Element, parse as parse_xml};
pub(crate) use anchor::Anchor;
pub(crate) use elements::{is_builtin, is_common_attr, is_custom_component};
pub(crate) use screen::{screen_frame, screen_theme};
pub(crate) use values::{
Names, boolean, color_attr, image_source, is_image_value, number, snake, str_consts, text_attr,
};
pub(crate) use widget::static_widget;
#[cfg(test)]
pub use screen::generate;
pub(crate) const UI_USE: &str =
"use ::yog_api::ui::{widget, Align, Dock, FlexDir, FocusStyle, Units};";
pub(crate) fn err<T>(el: &Element, msg: impl std::fmt::Display) -> Result<T, String> {
Err(format!("line {}: <{}> {msg}", el.line, el.name))
}
pub(crate) const RAW_VALUE: &str = "\u{1}rs:";
pub(crate) const RAW_CALL: &str = "__rs";
#[cfg(test)]
mod tests;