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.

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 AzblobBuilder

source§

const SCHEME: Scheme = Scheme::Azblob

§

type Accessor = AzblobBackend

source§

impl Builder for AzdfsBuilder

§

type Accessor = AzdfsBackend

source§

const SCHEME: Scheme = Scheme::Azdfs

source§

impl Builder for CosBuilder

source§

const SCHEME: Scheme = Scheme::Cos

§

type Accessor = CosBackend

source§

impl Builder for DashmapBuilder

source§

const SCHEME: Scheme = Scheme::Dashmap

§

type Accessor = Backend<Adapter>

source§

impl Builder for FsBuilder

source§

const SCHEME: Scheme = Scheme::Fs

§

type Accessor = FsBackend

source§

impl Builder for FtpBuilder

source§

const SCHEME: Scheme = Scheme::Ftp

§

type Accessor = FtpBackend

source§

impl Builder for GcsBuilder

source§

const SCHEME: Scheme = Scheme::Gcs

§

type Accessor = GcsBackend

source§

impl Builder for GdriveBuilder

source§

const SCHEME: Scheme = Scheme::Gdrive

§

type Accessor = GdriveBackend

source§

impl Builder for GhacBuilder

source§

const SCHEME: Scheme = Scheme::Ghac

§

type Accessor = GhacBackend

source§

impl Builder for HdfsBuilder

source§

const SCHEME: Scheme = Scheme::Hdfs

§

type Accessor = HdfsBackend

source§

impl Builder for HttpBuilder

source§

const SCHEME: Scheme = Scheme::Http

§

type Accessor = HttpBackend

source§

impl Builder for IpfsBuilder

source§

const SCHEME: Scheme = Scheme::Ipfs

§

type Accessor = IpfsBackend

source§

impl Builder for IpmfsBuilder

source§

const SCHEME: Scheme = Scheme::Ipmfs

§

type Accessor = IpmfsBackend

source§

impl Builder for MemcachedBuilder

source§

const SCHEME: Scheme = Scheme::Memcached

§

type Accessor = Backend<Adapter>

source§

impl Builder for MemoryBuilder

source§

const SCHEME: Scheme = Scheme::Memory

§

type Accessor = Backend<Adapter>

source§

impl Builder for MokaBuilder

source§

const SCHEME: Scheme = Scheme::Moka

§

type Accessor = Backend<Adapter>

source§

impl Builder for ObsBuilder

source§

const SCHEME: Scheme = Scheme::Obs

§

type Accessor = ObsBackend

source§

impl Builder for OnedriveBuilder

source§

const SCHEME: Scheme = Scheme::Onedrive

§

type Accessor = OnedriveBackend

source§

impl Builder for OssBuilder

source§

const SCHEME: Scheme = Scheme::Oss

§

type Accessor = OssBackend

source§

impl Builder for RedisBuilder

source§

const SCHEME: Scheme = Scheme::Redis

§

type Accessor = Backend<Adapter>

source§

impl Builder for RocksdbBuilder

source§

const SCHEME: Scheme = Scheme::Rocksdb

§

type Accessor = Backend<Adapter>

source§

impl Builder for S3Builder

source§

const SCHEME: Scheme = Scheme::S3

§

type Accessor = S3Backend

source§

impl Builder for SftpBuilder

source§

const SCHEME: Scheme = Scheme::Sftp

§

type Accessor = SftpBackend

source§

impl Builder for SledBuilder

source§

const SCHEME: Scheme = Scheme::Sled

§

type Accessor = Backend<Adapter>

source§

impl Builder for SupabaseBuilder

source§

const SCHEME: Scheme = Scheme::Supabase

§

type Accessor = SupabaseBackend

source§

impl Builder for VercelArtifactsBuilder

source§

const SCHEME: Scheme = Scheme::VercelArtifacts

§

type Accessor = VercelArtifactsBackend

source§

impl Builder for WasabiBuilder

source§

const SCHEME: Scheme = Scheme::Wasabi

§

type Accessor = WasabiBackend

source§

impl Builder for WebdavBuilder

source§

const SCHEME: Scheme = Scheme::Webdav

§

type Accessor = WebdavBackend

source§

impl Builder for WebhdfsBuilder

source§

const SCHEME: Scheme = Scheme::Webhdfs

§

type Accessor = WebhdfsBackend