Skip to main content

Configurator

Trait Configurator 

pub trait Configurator:
    Serialize
    + DeserializeOwned
    + Debug
    + 'static {
    type Builder: Builder;

    // Required method
    fn into_builder(self) -> Self::Builder;

    // Provided methods
    fn from_uri(_uri: &OperatorUri) -> Result<Self, Error> { ... }
    fn from_iter(
        iter: impl IntoIterator<Item = (String, String)>,
    ) -> Result<Self, Error> { ... }
}
Expand description

OpenDAL uses Configurator to configure a service.

This trait allows the developer to define a configuration struct that can:

  • Deserialize from an iterator such as a hash map or vector.
  • Convert into a service builder and then build a concrete service.

Users can usually use the Operator API instead of importing and using Configurator directly. For example:

use std::collections::HashMap;

use opendal_core::services::MemoryConfig;
use opendal_core::Operator;
async fn test() -> Result<()> {
    let mut cfg = MemoryConfig::default();
    cfg.root = Some("/".to_string());

    // Build an `Operator` to start operating the storage.
    let op: Operator = Operator::from_config(cfg)?;

    Ok(())
}

Required Associated Types§

type Builder: Builder

Associated builder for this configuration.

Required Methods§

fn into_builder(self) -> Self::Builder

Convert this configuration into a service builder.

Provided Methods§

fn from_uri(_uri: &OperatorUri) -> Result<Self, Error>

Build configuration from a parsed URI with merged options.

fn from_iter( iter: impl IntoIterator<Item = (String, String)>, ) -> Result<Self, Error>

Deserialize from an iterator.

OpenDAL provides this method; service developers should not need to override it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl Configurator for ()

Implementors§

§

impl Configurator for AliyunDriveConfig

§

impl Configurator for AlluxioConfig

Source§

impl Configurator for AzblobConfig

Source§

impl Configurator for AzdlsConfig

Source§

impl Configurator for AzfileConfig

Source§

impl Configurator for B2Config

Source§

impl Configurator for CacacheConfig

Source§

impl Configurator for CloudflareKvConfig

Source§

impl Configurator for CompfsConfig

Source§

impl Configurator for CosConfig

§

impl Configurator for D1Config

Source§

impl Configurator for DashmapConfig

Source§

impl Configurator for DbfsConfig

Source§

impl Configurator for DropboxConfig

Source§

impl Configurator for EtcdConfig

Source§

impl Configurator for FoundationdbConfig

Source§

impl Configurator for FoyerConfig

Source§

impl Configurator for FsConfig

Source§

impl Configurator for FtpConfig

Source§

impl Configurator for GcsConfig

Source§

impl Configurator for GdriveConfig

Source§

impl Configurator for GhacConfig

Source§

impl Configurator for GithubConfig

Source§

impl Configurator for GoosefsConfig

Source§

impl Configurator for GridfsConfig

Source§

impl Configurator for HdfsConfig

Source§

impl Configurator for HdfsNativeConfig

Source§

impl Configurator for HfConfig

Source§

impl Configurator for HttpConfig

Source§

impl Configurator for IpfsConfig

Source§

impl Configurator for IpmfsConfig

Source§

impl Configurator for KoofrConfig

§

impl Configurator for LakefsConfig

Source§

impl Configurator for MemcachedConfig

§

impl Configurator for MemoryConfig

Source§

impl Configurator for MiniMokaConfig

Source§

impl Configurator for MokaConfig

Source§

impl Configurator for MongodbConfig

Source§

impl Configurator for MonoiofsConfig

Source§

impl Configurator for MysqlConfig

Source§

impl Configurator for ObsConfig

§

impl Configurator for OnedriveConfig

Source§

impl Configurator for OssConfig

Source§

impl Configurator for PcloudConfig

Source§

impl Configurator for PersyConfig

Source§

impl Configurator for PostgresqlConfig

Source§

impl Configurator for RedbConfig

Source§

impl Configurator for RedisConfig

Source§

impl Configurator for RocksdbConfig

Source§

impl Configurator for S3Config

§

impl Configurator for SeafileConfig

Source§

impl Configurator for SftpConfig

Source§

impl Configurator for SledConfig

Source§

impl Configurator for SqliteConfig

Source§

impl Configurator for SurrealdbConfig

§

impl Configurator for SwiftConfig

Source§

impl Configurator for TikvConfig

Source§

impl Configurator for TosConfig

§

impl Configurator for UpyunConfig

Source§

impl Configurator for VercelArtifactsConfig

Source§

impl Configurator for VercelBlobConfig

Source§

impl Configurator for WebdavConfig

Source§

impl Configurator for WebhdfsConfig

Source§

impl Configurator for YandexDiskConfig