@yuuang/ffi-rs-linux-arm64-musl
Advanced tools
Comparing version 1.0.54 to 1.0.55
{ | ||
"name": "@yuuang/ffi-rs-linux-arm64-musl", | ||
"version": "1.0.54", | ||
"version": "1.0.55", | ||
"os": [ | ||
@@ -5,0 +5,0 @@ "linux" |
@@ -320,2 +320,4 @@ # ffi-rs | ||
`Pointer` is complicated and underlying, `ffi-rs` provide four functions to handle this pointer include `createPointer`, `restorePointer`, `unpackPointer`, `wrapPointer` for different scene. | ||
```cpp | ||
@@ -353,4 +355,10 @@ extern "C" const char *concatenateStrings(const char *str1, const char *str2) { | ||
#### CreatePointer | ||
#### createPointer | ||
`createPointer` function is used for create a pointer point to specify type. In order to avoid mistaks, developers have to understand what type this pointer is. | ||
For numeric type like `i32|u8|i64|f64`, createPointer will create a pointer like `*mut i32` point to there number | ||
For types that are originally pointer types like `char *` represent `string` type in `c`, createPointer will create a dual pointer like `*mut *mut c_char` point to `*mut c_char`.Developers can use `unpackPointer` get the interal pointer `*mut c_char` | ||
```js | ||
@@ -395,2 +403,4 @@ let bigDoubleArr = new Array(5).fill(1.1); | ||
#### restorePointer | ||
Similarly, you can use `restorePointer` to restore data from `pointer` which is wrapped by `createPointer` | ||
@@ -413,2 +423,39 @@ | ||
#### wrapPointer | ||
`wrapPointer` is used to create multiple pointer. | ||
For example, developers can use `wrapPointer` to create a pointer point to other existing pointer. | ||
```js | ||
const { wrapPointer } = require('ffi-rs') | ||
// ptr type is *mut c_char | ||
const ptr = load({ | ||
library: "libsum", | ||
funcName: "concatenateStrings", | ||
retType: DataType.External, | ||
paramsType: [DataType.String, DataType.String], | ||
paramsValue: [c, d], | ||
}) | ||
// wrapPtr type is *mut *mut c_char | ||
const wrapPtr = wrapPointer([ptr])[0] | ||
``` | ||
#### unpackPointer | ||
`unpackPointer` is oppsite to `wrapPointer` which is used to get the internal pointer for multiple pointer | ||
```js | ||
const { unpackPointer, createPointer } = require('ffi-rs') | ||
// ptr type is *mut *mut c_char | ||
let ptr = createPointer({ | ||
paramsType: [DataType.String], | ||
paramsValue: ["foo] | ||
}) | ||
// unpackedPtr type is *mut c_char | ||
const unpackedPtr = unpackPointer([ptr])[0] | ||
``` | ||
### Struct | ||
@@ -415,0 +462,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
634123
798