Trait opendal::Builder

source ·
pub trait Builder: Default {
    type Accessor: Accessor;

    const SCHEME: Scheme;

    // Required methods
    fn from_map(map: HashMap<String, String>) -> Self;
    fn build(&mut self) -> Result<Self::Accessor>;
}
Expand description

Builder is used to set up a real underlying service, i.e. storage accessor.

One builder is usually used by Operator during its initialization. It can be created by accepting several k-v pairs from one HashMap, one iterator and specific environment variables.

By default each builder of underlying service must support deriving from one HashMap. Besides that, according to the implementation, each builder will have its own special methods to control the behavior of initialization of the underlying service. It often provides semantic interface instead of using dynamic k-v strings directly. Because the latter way is obscure and hard to remember how many parameters it will have.

So it is recommended that developer should read related doc of builder carefully when you are working with one service. We also promise that every public API will provide detailed documentation.

It’s recommended to use Operator::new to avoid use Builder trait directly.

Required Associated Types§

source

type Accessor: Accessor

The accessor that built by this builder.

Required Associated Constants§

source

const SCHEME: Scheme

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

Required Methods§

source

fn from_map(map: HashMap<String, String>) -> Self

Construct a builder from given map which contains several parameters needed by underlying service.

source

fn build(&mut self) -> Result<Self::Accessor>

Consume the accessor builder to build a service.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Builder for ()

Dummy implementation of builder

source§

const SCHEME: Scheme = _

§

type Accessor = ()

source§

fn from_map(_: HashMap<String, String>) -> Self

source§

fn build(&mut self) -> Result<Self::Accessor>

Implementors§

source§

impl Builder for AlluxioBuilder

Available on crate feature services-alluxio only.
source§

const SCHEME: Scheme = Scheme::Alluxio

§

type Accessor = AlluxioBackend

source§

impl Builder for AtomicserverBuilder

Available on crate feature services-atomicserver only.
source§

const SCHEME: Scheme = Scheme::Atomicserver

§

type Accessor = Backend<Adapter>

source§

impl Builder for AzblobBuilder

Available on crate feature services-azblob only.
source§

const SCHEME: Scheme = Scheme::Azblob

§

type Accessor = AzblobBackend

source§

impl Builder for AzdlsBuilder

Available on crate feature services-azdls only.
§

type Accessor = AzdlsBackend

source§

const SCHEME: Scheme = Scheme::Azdls

source§

impl Builder for AzfileBuilder

Available on crate feature services-azfile only.
source§

const SCHEME: Scheme = Scheme::Azfile

§

type Accessor = AzfileBackend

source§

impl Builder for B2Builder

Available on crate feature services-b2 only.
source§

const SCHEME: Scheme = Scheme::B2

§

type Accessor = B2Backend

source§

impl Builder for CacacheBuilder

Available on crate feature services-cacache only.
source§

const SCHEME: Scheme = Scheme::Cacache

§

type Accessor = Backend<Adapter>

source§

impl Builder for ChainsafeBuilder

Available on crate feature services-chainsafe only.
source§

const SCHEME: Scheme = Scheme::Chainsafe

§

type Accessor = ChainsafeBackend

source§

impl Builder for CloudflareKvBuilder

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

const SCHEME: Scheme = Scheme::CloudflareKv

§

type Accessor = Backend<Adapter>

source§

impl Builder for CosBuilder

Available on crate feature services-cos only.
source§

const SCHEME: Scheme = Scheme::Cos

§

type Accessor = CosBackend

source§

impl Builder for D1Builder

Available on crate feature services-d1 only.
source§

const SCHEME: Scheme = Scheme::D1

§

type Accessor = Backend<Adapter>

source§

impl Builder for DashmapBuilder

Available on crate feature services-dashmap only.
source§

const SCHEME: Scheme = Scheme::Dashmap

§

type Accessor = Backend<Adapter>

source§

impl Builder for DbfsBuilder

Available on crate feature services-dbfs only.
source§

const SCHEME: Scheme = Scheme::Dbfs

§

type Accessor = DbfsBackend

source§

impl Builder for DropboxBuilder

Available on crate feature services-dropbox only.
source§

const SCHEME: Scheme = Scheme::Dropbox

§

type Accessor = DropboxBackend

source§

impl Builder for EtcdBuilder

Available on crate feature services-etcd only.
source§

const SCHEME: Scheme = Scheme::Etcd

§

type Accessor = Backend<Adapter>

source§

impl Builder for FoundationdbBuilder

Available on crate feature services-foundationdb only.
source§

const SCHEME: Scheme = Scheme::Foundationdb

§

type Accessor = Backend<Adapter>

source§

impl Builder for FsBuilder

Available on crate feature services-fs only.
source§

const SCHEME: Scheme = Scheme::Fs

§

type Accessor = FsBackend

source§

impl Builder for FtpBuilder

Available on crate feature services-ftp only.
source§

const SCHEME: Scheme = Scheme::Ftp

§

type Accessor = FtpBackend

source§

impl Builder for GcsBuilder

Available on crate feature services-gcs only.
source§

const SCHEME: Scheme = Scheme::Gcs

§

type Accessor = GcsBackend

source§

impl Builder for GdriveBuilder

Available on crate feature services-gdrive only.
source§

const SCHEME: Scheme = Scheme::Gdrive

§

type Accessor = GdriveBackend

source§

impl Builder for GhacBuilder

Available on crate feature services-ghac only.
source§

const SCHEME: Scheme = Scheme::Ghac

§

type Accessor = GhacBackend

source§

impl Builder for GithubBuilder

Available on crate feature services-github only.
source§

const SCHEME: Scheme = Scheme::Github

§

type Accessor = GithubBackend

source§

impl Builder for GridFsBuilder

Available on crate feature services-gridfs only.
source§

const SCHEME: Scheme = Scheme::Mongodb

§

type Accessor = Backend<Adapter>

source§

impl Builder for HdfsBuilder

Available on crate feature services-hdfs only.
source§

const SCHEME: Scheme = Scheme::Hdfs

§

type Accessor = HdfsBackend

source§

impl Builder for HdfsNativeBuilder

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

const SCHEME: Scheme = Scheme::HdfsNative

§

type Accessor = HdfsNativeBackend

source§

impl Builder for HttpBuilder

Available on crate feature services-http only.
source§

const SCHEME: Scheme = Scheme::Http

§

type Accessor = HttpBackend

source§

impl Builder for HuggingfaceBuilder

Available on crate feature services-huggingface only.
source§

const SCHEME: Scheme = Scheme::Huggingface

§

type Accessor = HuggingfaceBackend

source§

impl Builder for IcloudBuilder

Available on crate feature services-icloud only.
source§

const SCHEME: Scheme = Scheme::Icloud

§

type Accessor = IcloudBackend

source§

impl Builder for IpfsBuilder

Available on crate feature services-ipfs only.
source§

const SCHEME: Scheme = Scheme::Ipfs

§

type Accessor = IpfsBackend

source§

impl Builder for IpmfsBuilder

Available on crate feature services-ipmfs only.
source§

const SCHEME: Scheme = Scheme::Ipmfs

§

type Accessor = IpmfsBackend

source§

impl Builder for KoofrBuilder

Available on crate feature services-koofr only.
source§

const SCHEME: Scheme = Scheme::Koofr

§

type Accessor = KoofrBackend

source§

impl Builder for LibsqlBuilder

Available on crate feature services-libsql only.
source§

const SCHEME: Scheme = Scheme::Libsql

§

type Accessor = Backend<Adapter>

source§

impl Builder for MemcachedBuilder

Available on crate feature services-memcached only.
source§

const SCHEME: Scheme = Scheme::Memcached

§

type Accessor = Backend<Adapter>

source§

impl Builder for MemoryBuilder

Available on crate feature services-memory only.
source§

const SCHEME: Scheme = Scheme::Memory

§

type Accessor = Backend<Adapter>

source§

impl Builder for MiniMokaBuilder

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

const SCHEME: Scheme = Scheme::MiniMoka

§

type Accessor = Backend<Adapter>

source§

impl Builder for MokaBuilder

Available on crate feature services-moka only.
source§

const SCHEME: Scheme = Scheme::Moka

§

type Accessor = Backend<Adapter>

source§

impl Builder for MongodbBuilder

Available on crate feature services-mongodb only.
source§

const SCHEME: Scheme = Scheme::Mongodb

§

type Accessor = Backend<Adapter>

source§

impl Builder for MysqlBuilder

Available on crate feature services-mysql only.
source§

const SCHEME: Scheme = Scheme::Mysql

§

type Accessor = Backend<Adapter>

source§

impl Builder for ObsBuilder

Available on crate feature services-obs only.
source§

const SCHEME: Scheme = Scheme::Obs

§

type Accessor = ObsBackend

source§

impl Builder for OnedriveBuilder

Available on crate feature services-onedrive only.
source§

const SCHEME: Scheme = Scheme::Onedrive

§

type Accessor = OnedriveBackend

source§

impl Builder for OssBuilder

Available on crate feature services-oss only.
source§

const SCHEME: Scheme = Scheme::Oss

§

type Accessor = OssBackend

source§

impl Builder for PcloudBuilder

Available on crate feature services-pcloud only.
source§

const SCHEME: Scheme = Scheme::Pcloud

§

type Accessor = PcloudBackend

source§

impl Builder for PersyBuilder

Available on crate feature services-persy only.
source§

const SCHEME: Scheme = Scheme::Persy

§

type Accessor = Backend<Adapter>

source§

impl Builder for PostgresqlBuilder

Available on crate feature services-postgresql only.
source§

const SCHEME: Scheme = Scheme::Postgresql

§

type Accessor = Backend<Adapter>

source§

impl Builder for RedbBuilder

Available on crate feature services-redb only.
source§

const SCHEME: Scheme = Scheme::Redb

§

type Accessor = Backend<Adapter>

source§

impl Builder for RedisBuilder

Available on crate feature services-redis only.
source§

const SCHEME: Scheme = Scheme::Redis

§

type Accessor = Backend<Adapter>

source§

impl Builder for RocksdbBuilder

Available on crate feature services-rocksdb only.
source§

const SCHEME: Scheme = Scheme::Rocksdb

§

type Accessor = Backend<Adapter>

source§

impl Builder for S3Builder

Available on crate feature services-s3 only.
source§

const SCHEME: Scheme = Scheme::S3

§

type Accessor = S3Backend

source§

impl Builder for SeafileBuilder

Available on crate feature services-seafile only.
source§

const SCHEME: Scheme = Scheme::Seafile

§

type Accessor = SeafileBackend

source§

impl Builder for SftpBuilder

Available on crate feature services-sftp only.
source§

const SCHEME: Scheme = Scheme::Sftp

§

type Accessor = SftpBackend

source§

impl Builder for SledBuilder

Available on crate feature services-sled only.
source§

const SCHEME: Scheme = Scheme::Sled

§

type Accessor = Backend<Adapter>

source§

impl Builder for SqliteBuilder

Available on crate feature services-sqlite only.
source§

const SCHEME: Scheme = Scheme::Sqlite

§

type Accessor = Backend<Adapter>

source§

impl Builder for SupabaseBuilder

Available on crate feature services-supabase only.
source§

const SCHEME: Scheme = Scheme::Supabase

§

type Accessor = SupabaseBackend

source§

impl Builder for SurrealdbBuilder

Available on crate feature services-surrealdb only.
source§

const SCHEME: Scheme = Scheme::Surrealdb

§

type Accessor = Backend<Adapter>

source§

impl Builder for SwiftBuilder

Available on crate feature services-swift only.
source§

const SCHEME: Scheme = Scheme::Swift

§

type Accessor = SwiftBackend

source§

impl Builder for TikvBuilder

Available on crate feature services-tikv only.
source§

const SCHEME: Scheme = Scheme::Tikv

§

type Accessor = Backend<Adapter>

source§

impl Builder for UpyunBuilder

Available on crate feature services-upyun only.
source§

const SCHEME: Scheme = Scheme::Upyun

§

type Accessor = UpyunBackend

source§

impl Builder for VercelArtifactsBuilder

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

const SCHEME: Scheme = Scheme::VercelArtifacts

§

type Accessor = VercelArtifactsBackend

source§

impl Builder for VercelBlobBuilder

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

const SCHEME: Scheme = Scheme::VercelBlob

§

type Accessor = VercelBlobBackend

source§

impl Builder for WebdavBuilder

Available on crate feature services-webdav only.
source§

const SCHEME: Scheme = Scheme::Webdav

§

type Accessor = WebdavBackend

source§

impl Builder for WebhdfsBuilder

Available on crate feature services-webhdfs only.
source§

const SCHEME: Scheme = Scheme::Webhdfs

§

type Accessor = WebhdfsBackend

source§

impl Builder for YandexDiskBuilder

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

const SCHEME: Scheme = Scheme::YandexDisk

§

type Accessor = YandexDiskBackend