#[repr(C)]pub struct lyplg_ext {
pub id: *const c_char,
pub parse: lyplg_ext_parse_clb,
pub compile: lyplg_ext_compile_clb,
pub printer_info: lyplg_ext_sprinter_info_clb,
pub node_xpath: lyplg_ext_node_xpath_clb,
pub snode_xpath: lyplg_ext_snode_xpath_clb,
pub snode: lyplg_ext_data_snode_clb,
pub validate: lyplg_ext_data_validate_clb,
pub pfree: lyplg_ext_parse_free_clb,
pub cfree: lyplg_ext_compile_free_clb,
pub compiled_size: lyplg_ext_compiled_size_clb,
pub compiled_print: lyplg_ext_compiled_print_clb,
}Expand description
@brief Extension plugin implementing various aspects of a YANG extension.
Every plugin should have at least either ::parse() or ::compile() callback defined but other than that all the callbacks are optional.
Fields§
§id: *const c_char< plugin identification (mainly for distinguish incompatible versions of the plugins for external tools)
parse: lyplg_ext_parse_clb< callback to parse the extension instance substatements
compile: lyplg_ext_compile_clb< callback to compile extension instance from the parsed data
printer_info: lyplg_ext_sprinter_info_clb< callback to print the compiled content (info format)
node_xpath: lyplg_ext_node_xpath_clb< callback to get first XPath document root data child node
snode_xpath: lyplg_ext_snode_xpath_clb< callback to get first XPath document root schema child node
snode: lyplg_ext_data_snode_clb< callback to get schema node in various use-cases
validate: lyplg_ext_data_validate_clb< callback to validate parsed data instances
pfree: lyplg_ext_parse_free_clb< free the extension-specific data created by its parsing
cfree: lyplg_ext_compile_free_clb< free the extension-specific data created by its compilation
compiled_size: lyplg_ext_compiled_size_clb< callback to get size of the custom compiled structure and substmts
compiled_print: lyplg_ext_compiled_print_clb< callback to print the compiled structure into a pre-allocated memory chunk