// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type ColladaLoader
///|
#module("@mizchi/three-mbt/asset-extra")
pub extern "js" fn ColladaLoader::ColladaLoader() -> ColladaLoader = "colladaLoader"
///|
pub fn ColladaLoader::as_loader(self : ColladaLoader) -> Loader = "%identity"
///|
extern "js" fn ColladaLoader::ffi_load(
self : ColladaLoader,
url : String,
) -> @js_async.Promise[ColladaResult] =
#| (self, url) => Promise.resolve().then(() => self.loadAsync(url).then(result=>{if(!result)throw new Error("Invalid Collada document");return result;}))
///|
pub async fn ColladaLoader::load(
self : ColladaLoader,
url : String,
) -> ColladaResult raise LoadError {
try {
let value = self.ffi_load(url).wait()
value
} catch {
error => raise LoadError((error : Error).to_string())
}
}
///|
extern "js" fn ColladaLoader::ffi_parse(
self : ColladaLoader,
text : String,
path : String,
) -> JsResult[ColladaResult] =
#| (self, text, path) => { try { return { ok: true, value: (() => { const result=self.parse(text,path);if(!result)throw new Error("Invalid Collada document");return result; })() }; } catch (error) { return { ok: false, error: String(error) }; } }
///|
pub fn ColladaLoader::parse(
self : ColladaLoader,
text : String,
path : String,
) -> ColladaResult raise LoadError {
match self.ffi_parse(text, path).into_result() {
Ok(value) => value
Err(message) => raise LoadError(message)
}
}