deno.land / x / deno@v1.28.2 / test_napi / src / properties.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
use napi_sys::PropertyAttributes::*;use napi_sys::Status::napi_ok;use napi_sys::*;use std::os::raw::c_char;use std::ptr;
pub fn init(env: napi_env, exports: napi_value) { let mut number: napi_value = ptr::null_mut(); assert!(unsafe { napi_create_double(env, 1.0, &mut number) } == napi_ok);
// Key name as napi_value representing `v8::String` let mut name_value: napi_value = ptr::null_mut(); assert!( unsafe { napi_create_string_utf8( env, "key_v8_string".as_ptr() as *const c_char, usize::MAX, &mut name_value, ) } == napi_ok );
// Key symbol let mut symbol_description: napi_value = ptr::null_mut(); let mut name_symbol: napi_value = ptr::null_mut(); assert!( unsafe { napi_create_string_utf8( env, "key_v8_symbol".as_ptr() as *const c_char, usize::MAX, &mut symbol_description, ) } == napi_ok ); assert!( unsafe { napi_create_symbol(env, symbol_description, &mut name_symbol) } == napi_ok );
let properties = &[ napi_property_descriptor { utf8name: "test_property_rw\0".as_ptr() as *const c_char, name: ptr::null_mut(), method: None, getter: None, setter: None, data: ptr::null_mut(), attributes: enumerable | writable, value: number, }, napi_property_descriptor { utf8name: "test_property_r\0".as_ptr() as *const c_char, name: ptr::null_mut(), method: None, getter: None, setter: None, data: ptr::null_mut(), attributes: enumerable, value: number, }, napi_property_descriptor { utf8name: ptr::null(), name: name_value, method: None, getter: None, setter: None, data: ptr::null_mut(), attributes: enumerable, value: number, }, napi_property_descriptor { utf8name: ptr::null(), name: name_symbol, method: None, getter: None, setter: None, data: ptr::null_mut(), attributes: enumerable, value: number, }, ];
unsafe { napi_define_properties(env, exports, properties.len(), properties.as_ptr()) };}
deno

Version Info

Tagged at
a year ago