pub struct ConfigLoader;Expand description
配置加载器
支持从文件或字符串加载配置,支持多种格式
§示例
ⓘ
use mofa_kernel::agent::config::{ConfigLoader, ConfigFormat};
// 从 YAML 字符串加载
let yaml = r#"
id: my-agent
name: My Agent
type: llm
llm:
model: gpt-4
"#;
let config = ConfigLoader::from_str(yaml, ConfigFormat::Yaml)?;
// 从文件加载 (自动检测格式)
let config = ConfigLoader::load_file("agent.yaml")?;
// 从 TOML 字符串加载
let toml = r#"
id = "my-agent"
name = "My Agent"
type = "llm"
"#;
let config = ConfigLoader::from_toml(toml)?;
// 从 INI 文件加载
let config = ConfigLoader::load_ini("agent.ini")?;Implementations§
Source§impl ConfigLoader
impl ConfigLoader
Sourcepub fn from_str(
content: &str,
format: ConfigFormat,
) -> Result<AgentConfig, AgentError>
pub fn from_str( content: &str, format: ConfigFormat, ) -> Result<AgentConfig, AgentError>
从字符串加载配置
Sourcepub fn from_yaml(content: &str) -> Result<AgentConfig, AgentError>
pub fn from_yaml(content: &str) -> Result<AgentConfig, AgentError>
从 YAML 字符串加载
Sourcepub fn from_toml(content: &str) -> Result<AgentConfig, AgentError>
pub fn from_toml(content: &str) -> Result<AgentConfig, AgentError>
从 TOML 字符串加载
Sourcepub fn from_json(content: &str) -> Result<AgentConfig, AgentError>
pub fn from_json(content: &str) -> Result<AgentConfig, AgentError>
从 JSON 字符串加载
Sourcepub fn from_ini(content: &str) -> Result<AgentConfig, AgentError>
pub fn from_ini(content: &str) -> Result<AgentConfig, AgentError>
从 INI 字符串加载
Sourcepub fn from_ron(content: &str) -> Result<AgentConfig, AgentError>
pub fn from_ron(content: &str) -> Result<AgentConfig, AgentError>
从 RON 字符串加载
Sourcepub fn from_json5(content: &str) -> Result<AgentConfig, AgentError>
pub fn from_json5(content: &str) -> Result<AgentConfig, AgentError>
从 JSON5 字符串加载
Sourcepub fn load_file(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_file(path: &str) -> Result<AgentConfig, AgentError>
从文件加载配置 (自动检测格式)
Sourcepub fn load_yaml(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_yaml(path: &str) -> Result<AgentConfig, AgentError>
从文件加载 YAML 配置
Sourcepub fn load_toml(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_toml(path: &str) -> Result<AgentConfig, AgentError>
从文件加载 TOML 配置
Sourcepub fn load_json(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_json(path: &str) -> Result<AgentConfig, AgentError>
从文件加载 JSON 配置
Sourcepub fn load_ini(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_ini(path: &str) -> Result<AgentConfig, AgentError>
从文件加载 INI 配置
Sourcepub fn load_ron(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_ron(path: &str) -> Result<AgentConfig, AgentError>
从文件加载 RON 配置
Sourcepub fn load_json5(path: &str) -> Result<AgentConfig, AgentError>
pub fn load_json5(path: &str) -> Result<AgentConfig, AgentError>
从文件加载 JSON5 配置
Sourcepub fn to_string(
config: &AgentConfig,
format: ConfigFormat,
) -> Result<String, AgentError>
pub fn to_string( config: &AgentConfig, format: ConfigFormat, ) -> Result<String, AgentError>
将配置序列化为字符串
Sourcepub fn save_file(config: &AgentConfig, path: &str) -> Result<(), AgentError>
pub fn save_file(config: &AgentConfig, path: &str) -> Result<(), AgentError>
将配置保存到文件
Sourcepub fn load_directory(dir_path: &str) -> Result<Vec<AgentConfig>, AgentError>
pub fn load_directory(dir_path: &str) -> Result<Vec<AgentConfig>, AgentError>
加载多个配置文件
Sourcepub fn merge(base: AgentConfig, overlay: AgentConfig) -> AgentConfig
pub fn merge(base: AgentConfig, overlay: AgentConfig) -> AgentConfig
合并多个配置 (后面的覆盖前面的)
Sourcepub fn load_merged_files(paths: &[&str]) -> Result<AgentConfig, AgentError>
pub fn load_merged_files(paths: &[&str]) -> Result<AgentConfig, AgentError>
从多个文件合并加载配置
Auto Trait Implementations§
impl Freeze for ConfigLoader
impl RefUnwindSafe for ConfigLoader
impl Send for ConfigLoader
impl Sync for ConfigLoader
impl Unpin for ConfigLoader
impl UnsafeUnpin for ConfigLoader
impl UnwindSafe for ConfigLoader
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