Commit graph

147 commits

Author SHA1 Message Date
LongYinan
1553bf7bc4
chore: apply 1.52 clippy rules 2021-05-07 18:19:52 +08:00
LongYinan
d1bceccbe6
feat(napi): expose create_string_from_c_char for C ffi scenario 2021-04-14 14:05:07 +08:00
LongYinan
5a21bbeb8e
fix(napi): memory ordering issues in tsfn 2021-04-12 18:04:02 +08:00
LongYinan
d4331e05df
refactor(napi): split NapiRaw trait from NapiValue 2021-04-01 18:57:49 +08:00
LongYinan
f0b8c5da07
fix(napi): do not call release tsfn in Drop when ref count is 0 2021-03-31 21:31:37 +08:00
LongYinan
925786c955
style: fix clippy error 2021-03-31 11:53:51 +08:00
LongYinan
f45f1aeb53
fix(napi): finalizer maybe_ref pointer value 2021-03-19 13:53:28 +08:00
Daniel Henry-Mantilla
4aba159958 Add a way to convert _stateful_ (Rust) closures into JsFunctions. 2021-03-18 21:09:55 +01:00
LongYinan
1e3290cd01
fix(napi): napi_adjust_external_memory issue on wini686 2021-03-12 16:09:57 +08:00
LongYinan
50f207f744
fix(napi): InvalidArg error when create_external with size hint 2021-03-11 19:02:42 +08:00
Daniel Henry-Mantilla
0204ef9342 Added a way to opt out of error handling for ThreadsafeFunctions.
This is to allow having the `ThreadSafeFunction` expect the same calling API
as an unwrapped `JsFunction` would have: in some contexts this consistency is
more desireable than giving the option to the caller to handle a native-to-js
conversion failure (or somebody having directly fed a `Result<T>`; although
that use case seems oddly niche to me: it can already be covered when
`type T = Result<U>;` and propagated/flattened inside the `R` closure with a
simple `?`), since such failure can already be quite fatal / unexpected in
some cases.

In order to keep the code backwards-compatible, this PR uses an added
**optional** generic (type) parameter. Since this parameter, semantically,
represents an `enum`, and since we don't have yet `const_generic` `enum`s, we
circumvent this limitation by using the type-level enum pattern, which is
abtracted away with a helper macro that incidentally yields some handy docs
(I can attach a rendered version of the docs hosted on netlify if the reviewer
so wishes).
2021-03-09 23:51:12 +01:00
LongYinan
071dcff9eb
feat(napi): add back clone trait to ThreadsafeFunction 2021-02-26 18:38:48 +08:00
LongYinan
e622d9693a
feat(napi): unwrap &'static value from Ref object 2021-02-25 22:17:21 +08:00
LongYinan
f46aa1f67a
fix(napi): throw JavaScript error in tsfn rather than rust thread panic 2021-01-25 12:11:12 +08:00
LongYinan
c1215379f2
feat(napi): impl Clone + Copy for Primitive types 2021-01-07 11:34:49 +08:00
LongYinan
e24738a4d8
fix(napi): remove into_*_ref from JsString
Close https://github.com/napi-rs/napi-rs/issues/411
2021-01-07 11:14:01 +08:00
LongYinan
911a0c139d
feat(napi): Env::create_arraybuffer_with_borrowed_data 2021-01-05 23:27:01 +08:00
LongYinan
c28f035f5c
fix(napi): remove unexpected napi_acquire_threadsafe_function 2021-01-04 14:56:32 +08:00
LongYinan
50ce9c6569
feat(napi): implement value getter for JsNumber 2020-12-29 16:36:38 +08:00
LongYinan
cbd4e4d1fc
chore(napi): remove TryFrom<JsNumber> for usize 2020-12-28 21:40:06 +08:00
LongYinan
ad2a84984f
feat(napi): uncheck version of Object methods 2020-12-27 23:46:07 +08:00
LongYinan
b1c8192d2a
refactor(napi): JsUnknow::cast now will not move ownership 2020-12-25 12:02:24 +08:00
LongYinan
501313789d
feat(napi): AsMut and DerefMut for JsBuffer 2020-12-25 00:21:37 +08:00
LongYinan
2a6c452ce7
refactor(napi): create_buffer_with_borrowed_data now accept not-null finalize_callback 2020-12-24 15:45:59 +08:00
LongYinan
26a2c01cd6
feat(napi): From Serde JSON Error for Error 2020-12-24 12:20:23 +08:00
LongYinan
530359421c
refactor(napi): create_buffer_with_borrowed_data now accepted raw ptr 2020-12-24 11:53:23 +08:00
LongYinan
8fcf42eeb6
refactor(napi): create_buffer_with_manually_drop_data => create_buffer_with_borrowed_data 2020-12-23 15:34:10 +08:00
LongYinan
5869e04283
docs: rust doc enhancement 2020-12-22 21:32:50 +08:00
LongYinan
bc25a5603b
fix(napi): adjust_external_memory in raw_finalize callback 2020-12-22 19:43:46 +08:00
LongYinan
1c4265496e
feat(napi): allow provide size_hint in create_external 2020-12-22 11:57:26 +08:00
LongYinan
c4d3876250
fix(napi): remove useless napi_adjust_external_memory in create_external_*_buffer 2020-12-22 11:57:03 +08:00
LongYinan
0446e463c8
fix(napi): memory issues in create_external_buffer 2020-12-21 16:10:30 +08:00
LongYinan
0239b9c012
Merge pull request #370 from napi-rs/task-reject
feat(napi): provide reject method in Task trait
2020-12-18 11:58:24 +08:00
LongYinan
9d38689426
feat(napi): provide reject method in Task trait
Do some cleanup logic if needed
2020-12-18 11:32:15 +08:00
LongYinan
bb5e1f4286
feat(napi): implement create_reference/get_reference_value 2020-12-18 00:07:24 +08:00
LongYinan
c4734e23a1
feat(napi): set and get instance data 2020-12-17 00:27:33 +08:00
LongYinan
c621986ce5
feat(napi): implement add_finalizer for JsObject 2020-12-16 23:23:04 +08:00
LongYinan
8513e4f796
docs: napi6 should be napi7 2020-12-10 14:26:53 +08:00
LongYinan
932ebcbee5
feat(napi): create_buffer_with_manually_drop_data 2020-12-10 14:26:19 +08:00
LongYinan
5989a79f0d
feat(napi): unsafe cast JsUnknown to the other JsValue 2020-12-10 14:26:18 +08:00
LongYinan
1c0634f6f2
fix(napi): move sys call out from debug_assert! macro 2020-12-09 21:57:48 +08:00
LongYinan
78245b0e8f
chore(napi): remove useless type cast in JsBuffer 2020-12-09 19:24:44 +08:00
LongYinan
f90640d7aa
docs: update documents 2020-12-03 17:17:40 +08:00
LongYinan
ba9744e89c
refactor(napi): reduce useless type cast 2020-12-02 18:39:20 +08:00
LongYinan
5ffb14729d
refactor(napi): js error 2020-12-02 14:56:19 +08:00
LongYinan
c184ab3926
ci: add cargo clippy 2020-12-01 14:58:00 +08:00
LongYinan
1a3621b727
feat(napi): major upgrades for napi@1
1. inline everything
2. change `check_status` and `type_of` to macro
3. provide #[module_exports] macro
4. remove debug and repr[transparent] for ffi struct
2020-11-26 11:31:49 +08:00
LongYinan
c370b8374b
fix(napi): CString memory leak 2020-11-20 10:53:33 +08:00
LongYinan
e337a58714
chore(napi): remove unsafe from CallContext::this_unchecked 2020-11-20 09:09:57 +08:00
LongYinan
781ff8dc14
refactor(napi): make NapiTrait to be unsafe
close https://github.com/napi-rs/napi-rs/issues/299
2020-11-20 00:07:20 +08:00