Skip to content

Commit

Permalink
JS also supports fallible ctors
Browse files Browse the repository at this point in the history
  • Loading branch information
Manishearth committed Jan 15, 2025
1 parent 1023a40 commit f024d39
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 9 deletions.
4 changes: 2 additions & 2 deletions feature_tests/js/api/ResultOpaque.d.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 9 additions & 3 deletions feature_tests/js/api/ResultOpaque.mjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions feature_tests/src/result.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ pub mod ffi {
Ok(Box::new(ResultOpaque(i)))
}

#[diplomat::attr(all(*, supports = fallible_constructors), named_constructor = "failing_foo")]
#[diplomat::attr(all(supports = named_constructors, supports = fallible_constructors), named_constructor = "failing_foo")]
pub fn new_failing_foo() -> Result<Box<ResultOpaque>, ErrorEnum> {
Err(ErrorEnum::Foo)
}

#[diplomat::attr(all(*, supports = fallible_constructors), named_constructor = "failing_bar")]
#[diplomat::attr(all(supports = named_constructors, supports = fallible_constructors), named_constructor = "failing_bar")]
pub fn new_failing_bar() -> Result<Box<ResultOpaque>, ErrorEnum> {
Err(ErrorEnum::Bar)
}
Expand All @@ -40,7 +40,7 @@ pub mod ffi {
Err(())
}

#[diplomat::attr(all(*, supports = fallible_constructors), named_constructor = "failing_struct")]
#[diplomat::attr(all(supports = named_constructors, supports = fallible_constructors), named_constructor = "failing_struct")]
pub fn new_failing_struct(i: i32) -> Result<Box<ResultOpaque>, ErrorStruct> {
Err(ErrorStruct { i, j: 12 })
}
Expand Down
2 changes: 1 addition & 1 deletion tool/src/js/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ pub(crate) fn attr_support() -> BackendAttrSupport {

a.constructors = true;
a.named_constructors = false;
a.fallible_constructors = false;
a.fallible_constructors = true;
a.accessors = true;
a.comparators = false;
a.stringifiers = false; // TODO
Expand Down

0 comments on commit f024d39

Please sign in to comment.