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".

Implementations on Foreign Types§

§

impl Configurator for ()

Implementors§

§

impl Configurator for AliyunDriveConfig

§

impl Configurator for AlluxioConfig

§

impl Configurator for AzblobConfig

§

impl Configurator for AzdlsConfig

§

impl Configurator for AzfileConfig

§

impl Configurator for B2Config

§

impl Configurator for CacacheConfig

§

impl Configurator for CloudflareKvConfig

§

impl Configurator for CompfsConfig

Source§

impl Configurator for CosConfig

§

impl Configurator for D1Config

§

impl Configurator for DashmapConfig

§

impl Configurator for DbfsConfig

§

impl Configurator for DropboxConfig

§

impl Configurator for EtcdConfig

§

impl Configurator for FoundationdbConfig

§

impl Configurator for FoyerConfig

Source§

impl Configurator for FsConfig

§

impl Configurator for FtpConfig

§

impl Configurator for GcsConfig

§

impl Configurator for GcsGrpcConfig

§

impl Configurator for GdriveConfig

Source§

impl Configurator for GhacConfig

§

impl Configurator for GithubConfig

Source§

impl Configurator for GoosefsConfig

§

impl Configurator for GridfsConfig

§

impl Configurator for HdfsConfig

§

impl Configurator for HdfsNativeConfig

§

impl Configurator for HfConfig

§

impl Configurator for HttpConfig

§

impl Configurator for IpfsConfig

§

impl Configurator for IpmfsConfig

§

impl Configurator for KoofrConfig

§

impl Configurator for LakefsConfig

§

impl Configurator for MemcachedConfig

§

impl Configurator for MemoryConfig

Source§

impl Configurator for MiniMokaConfig

§

impl Configurator for MokaConfig

§

impl Configurator for MongodbConfig

§

impl Configurator for MonoiofsConfig

§

impl Configurator for MysqlConfig

Source§

impl Configurator for ObsConfig

§

impl Configurator for OnedriveConfig

Source§

impl Configurator for OssConfig

§

impl Configurator for PcloudConfig

§

impl Configurator for PersyConfig

§

impl Configurator for PostgresqlConfig

Source§

impl Configurator for RedbConfig

§

impl Configurator for RedisConfig

§

impl Configurator for RocksdbConfig

§

impl Configurator for S3Config

§

impl Configurator for SeafileConfig

§

impl Configurator for SftpConfig

§

impl Configurator for SledConfig

§

impl Configurator for SqliteConfig

§

impl Configurator for SurrealdbConfig

§

impl Configurator for SwiftConfig

Source§

impl Configurator for TikvConfig

Source§

impl Configurator for TosConfig

§

impl Configurator for UpyunConfig

§

impl Configurator for VercelArtifactsConfig

§

impl Configurator for VercelBlobConfig

§

impl Configurator for WebdavConfig

§

impl Configurator for WebhdfsConfig

§

impl Configurator for YandexDiskConfig