pub trait Configurator:
Serialize
+ DeserializeOwned
+ Debug
+ 'static {
type Builder: Builder;
// Required method
fn into_builder(self) -> Self::Builder;
// Provided method
fn from_iter(
iter: impl IntoIterator<Item = (String, String)>,
) -> Result<Self> { ... }
}
Expand description
Configurator is used to configure the underlying service.
This trait allows the developer to define a configuration struct that can:
- deserialize from an iterator like hashmap or vector.
- convert into a service builder and finally build the underlying services.
Usually, users don’t need to use or import this trait directly, they can use Operator
API instead.
For example:
use std::collections::HashMap;
use opendal::services::MemoryConfig;
use opendal::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)?.finish();
Ok(())
}
Some service builder might contain in memory options like http_client
. Users can call
into_builder
to convert the configuration into a builder instead.
use std::collections::HashMap;
use opendal::raw::HttpClient;
use opendal::services::S3Config;
use opendal::Configurator;
use opendal::Operator;
async fn test() -> Result<()> {
let mut cfg = S3Config::default();
cfg.root = Some("/".to_string());
cfg.bucket = "test".to_string();
let builder = cfg.into_builder();
let builder = builder.http_client(HttpClient::new()?);
// Build an `Operator` to start operating the storage.
let op: Operator = Operator::new(builder)?.finish();
Ok(())
}
Required Associated Types§
Required Methods§
Sourcefn into_builder(self) -> Self::Builder
fn into_builder(self) -> Self::Builder
Convert this configuration into a service builder.
Provided Methods§
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§
Source§impl Configurator for ()
impl Configurator for ()
Implementors§
Source§impl Configurator for AliyunDriveConfig
Available on crate feature services-aliyun-drive
only.
impl Configurator for AliyunDriveConfig
Available on crate feature
services-aliyun-drive
only.type Builder = AliyunDriveBuilder
Source§impl Configurator for AlluxioConfig
Available on crate feature services-alluxio
only.
impl Configurator for AlluxioConfig
Available on crate feature
services-alluxio
only.type Builder = AlluxioBuilder
Source§impl Configurator for AtomicserverConfig
Available on crate feature services-atomicserver
only.
impl Configurator for AtomicserverConfig
Available on crate feature
services-atomicserver
only.Source§impl Configurator for AzblobConfig
Available on crate feature services-azblob
only.
impl Configurator for AzblobConfig
Available on crate feature
services-azblob
only.type Builder = AzblobBuilder
Source§impl Configurator for AzdlsConfig
Available on crate feature services-azdls
only.
impl Configurator for AzdlsConfig
Available on crate feature
services-azdls
only.type Builder = AzdlsBuilder
Source§impl Configurator for AzfileConfig
Available on crate feature services-azfile
only.
impl Configurator for AzfileConfig
Available on crate feature
services-azfile
only.type Builder = AzfileBuilder
Source§impl Configurator for B2Config
Available on crate feature services-b2
only.
impl Configurator for B2Config
Available on crate feature
services-b2
only.Source§impl Configurator for CacacheConfig
Available on crate feature services-cacache
only.
impl Configurator for CacacheConfig
Available on crate feature
services-cacache
only.type Builder = CacacheBuilder
Source§impl Configurator for CloudflareKvConfig
Available on crate feature services-cloudflare-kv
only.
impl Configurator for CloudflareKvConfig
Available on crate feature
services-cloudflare-kv
only.Source§impl Configurator for CompfsConfig
Available on crate feature services-compfs
only.
impl Configurator for CompfsConfig
Available on crate feature
services-compfs
only.type Builder = CompfsBuilder
Source§impl Configurator for CosConfig
Available on crate feature services-cos
only.
impl Configurator for CosConfig
Available on crate feature
services-cos
only.type Builder = CosBuilder
Source§impl Configurator for D1Config
Available on crate feature services-d1
only.
impl Configurator for D1Config
Available on crate feature
services-d1
only.Source§impl Configurator for DashmapConfig
Available on crate feature services-dashmap
only.
impl Configurator for DashmapConfig
Available on crate feature
services-dashmap
only.type Builder = DashmapBuilder
Source§impl Configurator for DbfsConfig
Available on crate feature services-dbfs
only.
impl Configurator for DbfsConfig
Available on crate feature
services-dbfs
only.type Builder = DbfsBuilder
Source§impl Configurator for DropboxConfig
Available on crate feature services-dropbox
only.
impl Configurator for DropboxConfig
Available on crate feature
services-dropbox
only.type Builder = DropboxBuilder
Source§impl Configurator for EtcdConfig
Available on crate feature services-etcd
only.
impl Configurator for EtcdConfig
Available on crate feature
services-etcd
only.type Builder = EtcdBuilder
Source§impl Configurator for FoundationdbConfig
Available on crate feature services-foundationdb
only.
impl Configurator for FoundationdbConfig
Available on crate feature
services-foundationdb
only.Source§impl Configurator for FsConfig
Available on crate feature services-fs
only.
impl Configurator for FsConfig
Available on crate feature
services-fs
only.Source§impl Configurator for FtpConfig
Available on crate feature services-ftp
only.
impl Configurator for FtpConfig
Available on crate feature
services-ftp
only.type Builder = FtpBuilder
Source§impl Configurator for GcsConfig
Available on crate feature services-gcs
only.
impl Configurator for GcsConfig
Available on crate feature
services-gcs
only.type Builder = GcsBuilder
Source§impl Configurator for GdriveConfig
Available on crate feature services-gdrive
only.
impl Configurator for GdriveConfig
Available on crate feature
services-gdrive
only.type Builder = GdriveBuilder
Source§impl Configurator for GhacConfig
Available on crate feature services-ghac
only.
impl Configurator for GhacConfig
Available on crate feature
services-ghac
only.type Builder = GhacBuilder
Source§impl Configurator for GithubConfig
Available on crate feature services-github
only.
impl Configurator for GithubConfig
Available on crate feature
services-github
only.type Builder = GithubBuilder
Source§impl Configurator for GridfsConfig
Available on crate feature services-gridfs
only.
impl Configurator for GridfsConfig
Available on crate feature
services-gridfs
only.type Builder = GridfsBuilder
Source§impl Configurator for HdfsConfig
Available on crate feature services-hdfs
only.
impl Configurator for HdfsConfig
Available on crate feature
services-hdfs
only.type Builder = HdfsBuilder
Source§impl Configurator for HdfsNativeConfig
Available on crate feature services-hdfs-native
only.Hadoop Distributed File System (HDFS™) support.
Using Native Rust HDFS client.
impl Configurator for HdfsNativeConfig
Available on crate feature
services-hdfs-native
only.Hadoop Distributed File System (HDFS™) support. Using Native Rust HDFS client.
type Builder = HdfsNativeBuilder
Source§impl Configurator for HttpConfig
Available on crate feature services-http
only.
impl Configurator for HttpConfig
Available on crate feature
services-http
only.type Builder = HttpBuilder
Source§impl Configurator for HuggingfaceConfig
Available on crate feature services-huggingface
only.
impl Configurator for HuggingfaceConfig
Available on crate feature
services-huggingface
only.type Builder = HuggingfaceBuilder
Source§impl Configurator for IcloudConfig
Available on crate feature services-icloud
only.
impl Configurator for IcloudConfig
Available on crate feature
services-icloud
only.type Builder = IcloudBuilder
Source§impl Configurator for IpfsConfig
Available on crate feature services-ipfs
only.
impl Configurator for IpfsConfig
Available on crate feature
services-ipfs
only.type Builder = IpfsBuilder
Source§impl Configurator for IpmfsConfig
Available on crate feature services-ipmfs
only.
impl Configurator for IpmfsConfig
Available on crate feature
services-ipmfs
only.type Builder = IpmfsBuilder
Source§impl Configurator for KoofrConfig
Available on crate feature services-koofr
only.
impl Configurator for KoofrConfig
Available on crate feature
services-koofr
only.type Builder = KoofrBuilder
Source§impl Configurator for LakefsConfig
Available on crate feature services-lakefs
only.
impl Configurator for LakefsConfig
Available on crate feature
services-lakefs
only.type Builder = LakefsBuilder
Source§impl Configurator for MemcachedConfig
Available on crate feature services-memcached
only.
impl Configurator for MemcachedConfig
Available on crate feature
services-memcached
only.type Builder = MemcachedBuilder
Source§impl Configurator for MemoryConfig
Available on crate feature services-memory
only.
impl Configurator for MemoryConfig
Available on crate feature
services-memory
only.type Builder = MemoryBuilder
Source§impl Configurator for MiniMokaConfig
Available on crate feature services-mini-moka
only.
impl Configurator for MiniMokaConfig
Available on crate feature
services-mini-moka
only.type Builder = MiniMokaBuilder
Source§impl Configurator for MokaConfig
Available on crate feature services-moka
only.
impl Configurator for MokaConfig
Available on crate feature
services-moka
only.type Builder = MokaBuilder
Source§impl Configurator for MongodbConfig
Available on crate feature services-mongodb
only.
impl Configurator for MongodbConfig
Available on crate feature
services-mongodb
only.type Builder = MongodbBuilder
Source§impl Configurator for MonoiofsConfig
Available on crate feature services-monoiofs
only.
impl Configurator for MonoiofsConfig
Available on crate feature
services-monoiofs
only.type Builder = MonoiofsBuilder
Source§impl Configurator for MysqlConfig
Available on crate feature services-mysql
only.
impl Configurator for MysqlConfig
Available on crate feature
services-mysql
only.type Builder = MysqlBuilder
Source§impl Configurator for NebulaGraphConfig
Available on crate feature services-nebula-graph
only.
impl Configurator for NebulaGraphConfig
Available on crate feature
services-nebula-graph
only.type Builder = NebulaGraphBuilder
Source§impl Configurator for ObsConfig
Available on crate feature services-obs
only.
impl Configurator for ObsConfig
Available on crate feature
services-obs
only.type Builder = ObsBuilder
Source§impl Configurator for OnedriveConfig
Available on crate feature services-onedrive
only.
impl Configurator for OnedriveConfig
Available on crate feature
services-onedrive
only.type Builder = OnedriveBuilder
Source§impl Configurator for OssConfig
Available on crate feature services-oss
only.
impl Configurator for OssConfig
Available on crate feature
services-oss
only.type Builder = OssBuilder
Source§impl Configurator for PcloudConfig
Available on crate feature services-pcloud
only.
impl Configurator for PcloudConfig
Available on crate feature
services-pcloud
only.type Builder = PcloudBuilder
Source§impl Configurator for PersyConfig
Available on crate feature services-persy
only.
impl Configurator for PersyConfig
Available on crate feature
services-persy
only.type Builder = PersyBuilder
Source§impl Configurator for PostgresqlConfig
Available on crate feature services-postgresql
only.
impl Configurator for PostgresqlConfig
Available on crate feature
services-postgresql
only.type Builder = PostgresqlBuilder
Source§impl Configurator for RedbConfig
Available on crate feature services-redb
only.
impl Configurator for RedbConfig
Available on crate feature
services-redb
only.type Builder = RedbBuilder
Source§impl Configurator for RedisConfig
Available on crate feature services-redis
only.
impl Configurator for RedisConfig
Available on crate feature
services-redis
only.type Builder = RedisBuilder
Source§impl Configurator for RocksdbConfig
Available on crate feature services-rocksdb
only.
impl Configurator for RocksdbConfig
Available on crate feature
services-rocksdb
only.type Builder = RocksdbBuilder
Source§impl Configurator for S3Config
Available on crate feature services-s3
only.
impl Configurator for S3Config
Available on crate feature
services-s3
only.Source§impl Configurator for SeafileConfig
Available on crate feature services-seafile
only.
impl Configurator for SeafileConfig
Available on crate feature
services-seafile
only.type Builder = SeafileBuilder
Source§impl Configurator for SftpConfig
Available on crate feature services-sftp
only.
impl Configurator for SftpConfig
Available on crate feature
services-sftp
only.type Builder = SftpBuilder
Source§impl Configurator for SledConfig
Available on crate feature services-sled
only.
impl Configurator for SledConfig
Available on crate feature
services-sled
only.type Builder = SledBuilder
Source§impl Configurator for SqliteConfig
Available on crate feature services-sqlite
only.
impl Configurator for SqliteConfig
Available on crate feature
services-sqlite
only.type Builder = SqliteBuilder
Source§impl Configurator for SurrealdbConfig
Available on crate feature services-surrealdb
only.
impl Configurator for SurrealdbConfig
Available on crate feature
services-surrealdb
only.type Builder = SurrealdbBuilder
Source§impl Configurator for SwiftConfig
Available on crate feature services-swift
only.
impl Configurator for SwiftConfig
Available on crate feature
services-swift
only.type Builder = SwiftBuilder
Source§impl Configurator for TikvConfig
Available on crate feature services-tikv
only.
impl Configurator for TikvConfig
Available on crate feature
services-tikv
only.type Builder = TikvBuilder
Source§impl Configurator for UpyunConfig
Available on crate feature services-upyun
only.
impl Configurator for UpyunConfig
Available on crate feature
services-upyun
only.type Builder = UpyunBuilder
Source§impl Configurator for VercelArtifactsConfig
Available on crate feature services-vercel-artifacts
only.
impl Configurator for VercelArtifactsConfig
Available on crate feature
services-vercel-artifacts
only.Source§impl Configurator for VercelBlobConfig
Available on crate feature services-vercel-blob
only.
impl Configurator for VercelBlobConfig
Available on crate feature
services-vercel-blob
only.type Builder = VercelBlobBuilder
Source§impl Configurator for WebdavConfig
Available on crate feature services-webdav
only.
impl Configurator for WebdavConfig
Available on crate feature
services-webdav
only.type Builder = WebdavBuilder
Source§impl Configurator for WebhdfsConfig
Available on crate feature services-webhdfs
only.
impl Configurator for WebhdfsConfig
Available on crate feature
services-webhdfs
only.type Builder = WebhdfsBuilder
Source§impl Configurator for YandexDiskConfig
Available on crate feature services-yandex-disk
only.
impl Configurator for YandexDiskConfig
Available on crate feature
services-yandex-disk
only.