Trait Builder

Source
pub trait Builder: Default + 'static {
    type Config: Configurator;

    const SCHEME: Scheme;

    // Required method
    fn build(self) -> Result<impl Access>;
}
Expand description

Builder is used to set up underlying services.

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

  • build a service via builder style API.
  • configure in-memory options like http_client or customized_credential_load.

Usually, users don’t need to use or import this trait directly, they can use Operator API instead.

For example:

use opendal::services::Fs;
use opendal::Operator;
async fn test() -> Result<()> {
    // Create fs backend builder.
    let mut builder = Fs::default().root("/tmp");

    // Build an `Operator` to start operating the storage.
    let op: Operator = Operator::new(builder)?.finish();

    Ok(())
}

Required Associated Constants§

Source

const SCHEME: Scheme

Associated scheme for this builder. It indicates what underlying service is.

Required Associated Types§

Source

type Config: Configurator

Associated configuration for this builder.

Required Methods§

Source

fn build(self) -> Result<impl Access>

Consume the accessor builder to build a service.

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 Builder for ()

Dummy implementation of builder

Implementors§

Source§

impl Builder for AliyunDriveBuilder

Available on crate feature services-aliyun-drive only.
Source§

const SCHEME: Scheme = Scheme::AliyunDrive

Source§

type Config = AliyunDriveConfig

Source§

impl Builder for AlluxioBuilder

Available on crate feature services-alluxio only.
Source§

const SCHEME: Scheme = Scheme::Alluxio

Source§

type Config = AlluxioConfig

Source§

impl Builder for AtomicserverBuilder

Available on crate feature services-atomicserver only.
Source§

const SCHEME: Scheme = Scheme::Atomicserver

Source§

type Config = AtomicserverConfig

Source§

impl Builder for AzblobBuilder

Available on crate feature services-azblob only.
Source§

const SCHEME: Scheme = Scheme::Azblob

Source§

type Config = AzblobConfig

Source§

impl Builder for AzdlsBuilder

Available on crate feature services-azdls only.
Source§

const SCHEME: Scheme = Scheme::Azdls

Source§

type Config = AzdlsConfig

Source§

impl Builder for AzfileBuilder

Available on crate feature services-azfile only.
Source§

const SCHEME: Scheme = Scheme::Azfile

Source§

type Config = AzfileConfig

Source§

impl Builder for B2Builder

Available on crate feature services-b2 only.
Source§

const SCHEME: Scheme = Scheme::B2

Source§

type Config = B2Config

Source§

impl Builder for CacacheBuilder

Available on crate feature services-cacache only.
Source§

const SCHEME: Scheme = Scheme::Cacache

Source§

type Config = CacacheConfig

Source§

impl Builder for CloudflareKvBuilder

Available on crate feature services-cloudflare-kv only.
Source§

const SCHEME: Scheme = Scheme::CloudflareKv

Source§

type Config = CloudflareKvConfig

Source§

impl Builder for CompfsBuilder

Available on crate feature services-compfs only.
Source§

const SCHEME: Scheme = Scheme::Compfs

Source§

type Config = CompfsConfig

Source§

impl Builder for CosBuilder

Available on crate feature services-cos only.
Source§

const SCHEME: Scheme = Scheme::Cos

Source§

type Config = CosConfig

Source§

impl Builder for D1Builder

Available on crate feature services-d1 only.
Source§

const SCHEME: Scheme = Scheme::D1

Source§

type Config = D1Config

Source§

impl Builder for DashmapBuilder

Available on crate feature services-dashmap only.
Source§

const SCHEME: Scheme = Scheme::Dashmap

Source§

type Config = DashmapConfig

Source§

impl Builder for DbfsBuilder

Available on crate feature services-dbfs only.
Source§

const SCHEME: Scheme = Scheme::Dbfs

Source§

type Config = DbfsConfig

Source§

impl Builder for DropboxBuilder

Available on crate feature services-dropbox only.
Source§

const SCHEME: Scheme = Scheme::Dropbox

Source§

type Config = DropboxConfig

Source§

impl Builder for EtcdBuilder

Available on crate feature services-etcd only.
Source§

const SCHEME: Scheme = Scheme::Etcd

Source§

type Config = EtcdConfig

Source§

impl Builder for FoundationdbBuilder

Available on crate feature services-foundationdb only.
Source§

const SCHEME: Scheme = Scheme::Foundationdb

Source§

type Config = FoundationdbConfig

Source§

impl Builder for FsBuilder

Available on crate feature services-fs only.
Source§

const SCHEME: Scheme = Scheme::Fs

Source§

type Config = FsConfig

Source§

impl Builder for FtpBuilder

Available on crate feature services-ftp only.
Source§

const SCHEME: Scheme = Scheme::Ftp

Source§

type Config = FtpConfig

Source§

impl Builder for GcsBuilder

Available on crate feature services-gcs only.
Source§

const SCHEME: Scheme = Scheme::Gcs

Source§

type Config = GcsConfig

Source§

impl Builder for GdriveBuilder

Available on crate feature services-gdrive only.
Source§

const SCHEME: Scheme = Scheme::Gdrive

Source§

type Config = GdriveConfig

Source§

impl Builder for GhacBuilder

Available on crate feature services-ghac only.
Source§

const SCHEME: Scheme = Scheme::Ghac

Source§

type Config = GhacConfig

Source§

impl Builder for GithubBuilder

Available on crate feature services-github only.
Source§

const SCHEME: Scheme = Scheme::Github

Source§

type Config = GithubConfig

Source§

impl Builder for GridfsBuilder

Available on crate feature services-gridfs only.
Source§

const SCHEME: Scheme = Scheme::Gridfs

Source§

type Config = GridfsConfig

Source§

impl Builder for HdfsBuilder

Available on crate feature services-hdfs only.
Source§

const SCHEME: Scheme = Scheme::Hdfs

Source§

type Config = HdfsConfig

Source§

impl Builder for HdfsNativeBuilder

Available on crate feature services-hdfs-native only.
Source§

const SCHEME: Scheme = Scheme::HdfsNative

Source§

type Config = HdfsNativeConfig

Source§

impl Builder for HttpBuilder

Available on crate feature services-http only.
Source§

const SCHEME: Scheme = Scheme::Http

Source§

type Config = HttpConfig

Source§

impl Builder for HuggingfaceBuilder

Available on crate feature services-huggingface only.
Source§

const SCHEME: Scheme = Scheme::Huggingface

Source§

type Config = HuggingfaceConfig

Source§

impl Builder for IcloudBuilder

Available on crate feature services-icloud only.
Source§

const SCHEME: Scheme = Scheme::Icloud

Source§

type Config = IcloudConfig

Source§

impl Builder for IpfsBuilder

Available on crate feature services-ipfs only.
Source§

const SCHEME: Scheme = Scheme::Ipfs

Source§

type Config = IpfsConfig

Source§

impl Builder for IpmfsBuilder

Available on crate feature services-ipmfs only.
Source§

const SCHEME: Scheme = Scheme::Ipmfs

Source§

type Config = IpmfsConfig

Source§

impl Builder for KoofrBuilder

Available on crate feature services-koofr only.
Source§

const SCHEME: Scheme = Scheme::Koofr

Source§

type Config = KoofrConfig

Source§

impl Builder for LakefsBuilder

Available on crate feature services-lakefs only.
Source§

const SCHEME: Scheme = Scheme::Lakefs

Source§

type Config = LakefsConfig

Source§

impl Builder for MemcachedBuilder

Available on crate feature services-memcached only.
Source§

const SCHEME: Scheme = Scheme::Memcached

Source§

type Config = MemcachedConfig

Source§

impl Builder for MemoryBuilder

Available on crate feature services-memory only.
Source§

const SCHEME: Scheme = Scheme::Memory

Source§

type Config = MemoryConfig

Source§

impl Builder for MiniMokaBuilder

Available on crate feature services-mini-moka only.
Source§

const SCHEME: Scheme = Scheme::MiniMoka

Source§

type Config = MiniMokaConfig

Source§

impl Builder for MokaBuilder

Available on crate feature services-moka only.
Source§

const SCHEME: Scheme = Scheme::Moka

Source§

type Config = MokaConfig

Source§

impl Builder for MongodbBuilder

Available on crate feature services-mongodb only.
Source§

const SCHEME: Scheme = Scheme::Mongodb

Source§

type Config = MongodbConfig

Source§

impl Builder for MonoiofsBuilder

Available on crate feature services-monoiofs only.
Source§

const SCHEME: Scheme = Scheme::Monoiofs

Source§

type Config = MonoiofsConfig

Source§

impl Builder for MysqlBuilder

Available on crate feature services-mysql only.
Source§

const SCHEME: Scheme = Scheme::Mysql

Source§

type Config = MysqlConfig

Source§

impl Builder for NebulaGraphBuilder

Available on crate feature services-nebula-graph only.
Source§

const SCHEME: Scheme = Scheme::NebulaGraph

Source§

type Config = NebulaGraphConfig

Source§

impl Builder for ObsBuilder

Available on crate feature services-obs only.
Source§

const SCHEME: Scheme = Scheme::Obs

Source§

type Config = ObsConfig

Source§

impl Builder for OnedriveBuilder

Available on crate feature services-onedrive only.
Source§

const SCHEME: Scheme = Scheme::Onedrive

Source§

type Config = OnedriveConfig

Source§

impl Builder for OssBuilder

Available on crate feature services-oss only.
Source§

const SCHEME: Scheme = Scheme::Oss

Source§

type Config = OssConfig

Source§

impl Builder for PcloudBuilder

Available on crate feature services-pcloud only.
Source§

const SCHEME: Scheme = Scheme::Pcloud

Source§

type Config = PcloudConfig

Source§

impl Builder for PersyBuilder

Available on crate feature services-persy only.
Source§

const SCHEME: Scheme = Scheme::Persy

Source§

type Config = PersyConfig

Source§

impl Builder for PostgresqlBuilder

Available on crate feature services-postgresql only.
Source§

const SCHEME: Scheme = Scheme::Postgresql

Source§

type Config = PostgresqlConfig

Source§

impl Builder for RedbBuilder

Available on crate feature services-redb only.
Source§

const SCHEME: Scheme = Scheme::Redb

Source§

type Config = RedbConfig

Source§

impl Builder for RedisBuilder

Available on crate feature services-redis only.
Source§

const SCHEME: Scheme = Scheme::Redis

Source§

type Config = RedisConfig

Source§

impl Builder for RocksdbBuilder

Available on crate feature services-rocksdb only.
Source§

const SCHEME: Scheme = Scheme::Rocksdb

Source§

type Config = RocksdbConfig

Source§

impl Builder for S3Builder

Available on crate feature services-s3 only.
Source§

const SCHEME: Scheme = Scheme::S3

Source§

type Config = S3Config

Source§

impl Builder for SeafileBuilder

Available on crate feature services-seafile only.
Source§

const SCHEME: Scheme = Scheme::Seafile

Source§

type Config = SeafileConfig

Source§

impl Builder for SftpBuilder

Available on crate feature services-sftp only.
Source§

const SCHEME: Scheme = Scheme::Sftp

Source§

type Config = SftpConfig

Source§

impl Builder for SledBuilder

Available on crate feature services-sled only.
Source§

const SCHEME: Scheme = Scheme::Sled

Source§

type Config = SledConfig

Source§

impl Builder for SqliteBuilder

Available on crate feature services-sqlite only.
Source§

const SCHEME: Scheme = Scheme::Sqlite

Source§

type Config = SqliteConfig

Source§

impl Builder for SurrealdbBuilder

Available on crate feature services-surrealdb only.
Source§

const SCHEME: Scheme = Scheme::Surrealdb

Source§

type Config = SurrealdbConfig

Source§

impl Builder for SwiftBuilder

Available on crate feature services-swift only.
Source§

const SCHEME: Scheme = Scheme::Swift

Source§

type Config = SwiftConfig

Source§

impl Builder for TikvBuilder

Available on crate feature services-tikv only.
Source§

const SCHEME: Scheme = Scheme::Tikv

Source§

type Config = TikvConfig

Source§

impl Builder for UpyunBuilder

Available on crate feature services-upyun only.
Source§

const SCHEME: Scheme = Scheme::Upyun

Source§

type Config = UpyunConfig

Source§

impl Builder for VercelArtifactsBuilder

Available on crate feature services-vercel-artifacts only.
Source§

const SCHEME: Scheme = Scheme::VercelArtifacts

Source§

type Config = VercelArtifactsConfig

Source§

impl Builder for VercelBlobBuilder

Available on crate feature services-vercel-blob only.
Source§

const SCHEME: Scheme = Scheme::VercelBlob

Source§

type Config = VercelBlobConfig

Source§

impl Builder for WebdavBuilder

Available on crate feature services-webdav only.
Source§

const SCHEME: Scheme = Scheme::Webdav

Source§

type Config = WebdavConfig

Source§

impl Builder for WebhdfsBuilder

Available on crate feature services-webhdfs only.
Source§

const SCHEME: Scheme = Scheme::Webhdfs

Source§

type Config = WebhdfsConfig

Source§

impl Builder for YandexDiskBuilder

Available on crate feature services-yandex-disk only.
Source§

const SCHEME: Scheme = Scheme::YandexDisk

Source§

type Config = YandexDiskConfig