nv-facutil-slct-ta 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +32 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -188,6 +188,34 @@ function creat_debug_view(o) {
|
|
|
188
188
|
return view;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
+
const is_ablike = (ab)=>toString.call(ab) === '[object ArrayBuffer]' || toString.call(ab) === '[object sharedArrayBuffer]';
|
|
192
|
+
const creat_on_ab =(Cls,requested_cnt,ab,offset=0)=>{
|
|
193
|
+
var algnsz = Cls.BYTES_PER_ELEMENT;
|
|
194
|
+
if(offset % algnsz === 0 ) {
|
|
195
|
+
var capacity = ab.byteLength - offset;
|
|
196
|
+
var requested_bytsz = algnsz * requested_cnt;
|
|
197
|
+
if(capacity >= requested_bytsz) {
|
|
198
|
+
var tar = new Cls(ab,offset,requested_cnt)
|
|
199
|
+
return [true,ta]
|
|
200
|
+
} else {
|
|
201
|
+
return [false,`ab.byteLength(${ab.byteLength}) - offset(${offset}) MUST >= requested_bytsz(${requested_bytsz})`]
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
return [false,`offset(${offset}) % algnsz(${algnsz}) MUST === 0`]
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
const is_overlaped = (typed_array0,typed_array1)=>{
|
|
209
|
+
var ab0 = typed_array0.buffer;
|
|
210
|
+
var ab1 = typed_array1.buffer;
|
|
211
|
+
if(ab0 === ab1) {
|
|
212
|
+
var si0 = typed_array0.byteOffset; var ei0 = si0 + typed_array0.byteLength;
|
|
213
|
+
var si1 = typed_array1.byteOffset; var ei1 = si1 + typed_array1.byteLength;
|
|
214
|
+
return !(ei0 <= si1 || ei1 <= si0); // 没有重叠时,返回 false
|
|
215
|
+
} else {
|
|
216
|
+
return false;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
191
219
|
|
|
192
220
|
module.exports = {
|
|
193
221
|
check_sz_and_algn,
|
|
@@ -208,5 +236,8 @@ module.exports = {
|
|
|
208
236
|
setv,
|
|
209
237
|
is_readonly,
|
|
210
238
|
////
|
|
211
|
-
creat_debug_view
|
|
239
|
+
creat_debug_view,
|
|
240
|
+
is_ablike,
|
|
241
|
+
creat_on_ab,
|
|
242
|
+
is_overlaped,
|
|
212
243
|
}
|