in core/src/services/surrealdb/backend.rs [150:215]
fn build(self) -> Result<impl Access> {
let connection_string = match self.config.connection_string.clone() {
Some(v) => v,
None => {
return Err(
Error::new(ErrorKind::ConfigInvalid, "connection_string is empty")
.with_context("service", Scheme::Surrealdb),
)
}
};
let namespace = match self.config.namespace.clone() {
Some(v) => v,
None => {
return Err(Error::new(ErrorKind::ConfigInvalid, "namespace is empty")
.with_context("service", Scheme::Surrealdb))
}
};
let database = match self.config.database.clone() {
Some(v) => v,
None => {
return Err(Error::new(ErrorKind::ConfigInvalid, "database is empty")
.with_context("service", Scheme::Surrealdb))
}
};
let table = match self.config.table.clone() {
Some(v) => v,
None => {
return Err(Error::new(ErrorKind::ConfigInvalid, "table is empty")
.with_context("service", Scheme::Surrealdb))
}
};
let username = self.config.username.clone().unwrap_or_default();
let password = self.config.password.clone().unwrap_or_default();
let key_field = self
.config
.key_field
.clone()
.unwrap_or_else(|| "key".to_string());
let value_field = self
.config
.value_field
.clone()
.unwrap_or_else(|| "value".to_string());
let root = normalize_root(
self.config
.root
.clone()
.unwrap_or_else(|| "/".to_string())
.as_str(),
);
Ok(SurrealdbBackend::new(Adapter {
db: OnceCell::new(),
connection_string,
username,
password,
namespace,
database,
table,
key_field,
value_field,
})
.with_normalized_root(root))
}