pub struct ExtensionManager { /* private fields */ }Expand description
扩展管理器
Implementations§
Source§impl ExtensionManager
impl ExtensionManager
Sourcepub fn builder() -> ExtensionManagerBuilder
pub fn builder() -> ExtensionManagerBuilder
创建ExtensionManager构建器
§示例
use mf_core::ExtensionManager;
let manager = ExtensionManager::builder()
.add_xml_file("./schemas/main.xml")
.build()?;pub fn new(extensions: &Vec<Extensions>) -> ForgeResult<Self>
Sourcepub fn from_xml_file(xml_file_path: &str) -> ForgeResult<Self>
pub fn from_xml_file(xml_file_path: &str) -> ForgeResult<Self>
Sourcepub fn from_xml_string(xml_content: &str) -> ForgeResult<Self>
pub fn from_xml_string(xml_content: &str) -> ForgeResult<Self>
从XML字符串创建ExtensionManager(便捷方法)
§参数
xml_content- XML schema内容字符串
§返回值
ForgeResult<Self>- 返回ExtensionManager实例或错误
§示例
use mf_core::ExtensionManager;
let xml = r#"
<?xml version="1.0" encoding="UTF-8"?>
<schema top_node="doc">
<nodes>
<node name="doc">
<content>paragraph+</content>
</node>
</nodes>
</schema>
"#;
let manager = ExtensionManager::from_xml_string(xml)?;Sourcepub fn from_xml_files(xml_file_paths: &[&str]) -> ForgeResult<Self>
pub fn from_xml_files(xml_file_paths: &[&str]) -> ForgeResult<Self>
从多个XML文件创建ExtensionManager(便捷方法)
§参数
xml_file_paths- XML schema文件路径列表
§返回值
ForgeResult<Self>- 返回ExtensionManager实例或错误
§示例
use mf_core::ExtensionManager;
let files = vec![
"./schemas/base-nodes.xml",
"./schemas/formatting-marks.xml",
"./schemas/custom-extensions.xml"
];
let manager = ExtensionManager::from_xml_files(&files)?;Sourcepub fn from_mixed_sources(
extensions: &[Extensions],
xml_file_paths: &[&str],
) -> ForgeResult<Self>
pub fn from_mixed_sources( extensions: &[Extensions], xml_file_paths: &[&str], ) -> ForgeResult<Self>
从Extensions和XML文件混合创建ExtensionManager(便捷方法)
§参数
extensions- 已有的Extensions列表xml_file_paths- 额外的XML schema文件路径列表
§返回值
ForgeResult<Self>- 返回ExtensionManager实例或错误
§示例
use mf_core::{ExtensionManager, types::Extensions};
let existing_extensions = vec![/* ... */];
let xml_files = vec!["./schemas/additional.xml"];
let manager = ExtensionManager::from_mixed_sources(
&existing_extensions,
&xml_files
)?;pub fn get_op_fns(&self) -> &OpFn
pub fn get_schema(&self) -> Arc<Schema>
pub fn get_plugins(&self) -> &Vec<Arc<Plugin>>
Sourcepub fn add_restored_plugins(
&mut self,
plugins: Vec<Arc<Plugin>>,
) -> ForgeResult<()>
pub fn add_restored_plugins( &mut self, plugins: Vec<Arc<Plugin>>, ) -> ForgeResult<()>
添加从快照恢复的插件
Auto Trait Implementations§
impl Freeze for ExtensionManager
impl !RefUnwindSafe for ExtensionManager
impl Send for ExtensionManager
impl Sync for ExtensionManager
impl Unpin for ExtensionManager
impl !UnwindSafe for ExtensionManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Message for T
impl<T> Message for T
Source§fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
fn from_boxed(m: BoxedMessage) -> Result<Self, BoxedDowncastErr>
Convert a BoxedMessage to this concrete type
Source§fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
fn box_message(self, pid: &ActorId) -> Result<BoxedMessage, BoxedDowncastErr>
Convert this message to a BoxedMessage