fn from_str()

in core/src/types/scheme.rs [331:403]


    fn from_str(s: &str) -> Result<Self, Self::Err> {
        let s = s.to_lowercase();
        match s.as_str() {
            "aliyun_drive" => Ok(Scheme::AliyunDrive),
            "atomicserver" => Ok(Scheme::Atomicserver),
            "azblob" => Ok(Scheme::Azblob),
            "alluxio" => Ok(Scheme::Alluxio),
            // Notes:
            //
            // OpenDAL used to call `azdls` as `azdfs`, we keep it for backward compatibility.
            // And abfs is widely used in hadoop ecosystem, keep it for easy to use.
            "azdls" | "azdfs" | "abfs" => Ok(Scheme::Azdls),
            "b2" => Ok(Scheme::B2),
            "cacache" => Ok(Scheme::Cacache),
            "compfs" => Ok(Scheme::Compfs),
            "cloudflare_kv" => Ok(Scheme::CloudflareKv),
            "cos" => Ok(Scheme::Cos),
            "d1" => Ok(Scheme::D1),
            "dashmap" => Ok(Scheme::Dashmap),
            "dropbox" => Ok(Scheme::Dropbox),
            "etcd" => Ok(Scheme::Etcd),
            "dbfs" => Ok(Scheme::Dbfs),
            "fs" => Ok(Scheme::Fs),
            "gcs" => Ok(Scheme::Gcs),
            "gdrive" => Ok(Scheme::Gdrive),
            "ghac" => Ok(Scheme::Ghac),
            "gridfs" => Ok(Scheme::Gridfs),
            "github" => Ok(Scheme::Github),
            "hdfs" => Ok(Scheme::Hdfs),
            "http" | "https" => Ok(Scheme::Http),
            "huggingface" | "hf" => Ok(Scheme::Huggingface),
            "ftp" | "ftps" => Ok(Scheme::Ftp),
            "ipfs" | "ipns" => Ok(Scheme::Ipfs),
            "ipmfs" => Ok(Scheme::Ipmfs),
            "icloud" => Ok(Scheme::Icloud),
            "koofr" => Ok(Scheme::Koofr),
            "memcached" => Ok(Scheme::Memcached),
            "memory" => Ok(Scheme::Memory),
            "mysql" => Ok(Scheme::Mysql),
            "sqlite" => Ok(Scheme::Sqlite),
            "mini_moka" => Ok(Scheme::MiniMoka),
            "moka" => Ok(Scheme::Moka),
            "monoiofs" => Ok(Scheme::Monoiofs),
            "obs" => Ok(Scheme::Obs),
            "onedrive" => Ok(Scheme::Onedrive),
            "persy" => Ok(Scheme::Persy),
            "postgresql" => Ok(Scheme::Postgresql),
            "redb" => Ok(Scheme::Redb),
            "redis" => Ok(Scheme::Redis),
            "rocksdb" => Ok(Scheme::Rocksdb),
            "s3" => Ok(Scheme::S3),
            "seafile" => Ok(Scheme::Seafile),
            "upyun" => Ok(Scheme::Upyun),
            "yandex_disk" => Ok(Scheme::YandexDisk),
            "pcloud" => Ok(Scheme::Pcloud),
            "sftp" => Ok(Scheme::Sftp),
            "sled" => Ok(Scheme::Sled),
            "swift" => Ok(Scheme::Swift),
            "oss" => Ok(Scheme::Oss),
            "vercel_artifacts" => Ok(Scheme::VercelArtifacts),
            "vercel_blob" => Ok(Scheme::VercelBlob),
            "webdav" => Ok(Scheme::Webdav),
            "webhdfs" => Ok(Scheme::Webhdfs),
            "tikv" => Ok(Scheme::Tikv),
            "azfile" => Ok(Scheme::Azfile),
            "mongodb" => Ok(Scheme::Mongodb),
            "hdfs_native" => Ok(Scheme::HdfsNative),
            "surrealdb" => Ok(Scheme::Surrealdb),
            "lakefs" => Ok(Scheme::Lakefs),
            "nebula_graph" => Ok(Scheme::NebulaGraph),
            _ => Ok(Scheme::Custom(Box::leak(s.into_boxed_str()))),
        }
    }