nv-facutil-slct-ta 1.0.4 → 1.0.6
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 +31 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
function check_sz_and_algn(sz,algnsz) {
|
|
2
|
+
if(sz<algnsz) {
|
|
3
|
+
return [false,`size(${sz}) MUST >= algnsz(${algnsz})`]
|
|
4
|
+
} else if(sz % algnsz !== 0) {
|
|
5
|
+
return [false,`size(${sz}) % algnsz(${algnsz}) = ${sz % algnsz} MUST == 0`]
|
|
6
|
+
} else {
|
|
7
|
+
return [true,null]
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
|
|
1
12
|
function calc_algn_si(si,algnsz) {
|
|
2
13
|
var r = si % algnsz;
|
|
3
14
|
if(r === 0) {
|
|
@@ -177,8 +188,25 @@ function creat_debug_view(o) {
|
|
|
177
188
|
return view;
|
|
178
189
|
}
|
|
179
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
|
+
}
|
|
180
207
|
|
|
181
208
|
module.exports = {
|
|
209
|
+
check_sz_and_algn,
|
|
182
210
|
calc_algn_si,
|
|
183
211
|
calc_max_incr_cnt,
|
|
184
212
|
get_ta_cls_with_max_cnt,
|
|
@@ -196,5 +224,7 @@ module.exports = {
|
|
|
196
224
|
setv,
|
|
197
225
|
is_readonly,
|
|
198
226
|
////
|
|
199
|
-
creat_debug_view
|
|
227
|
+
creat_debug_view,
|
|
228
|
+
is_ablike,
|
|
229
|
+
creat_on_ab
|
|
200
230
|
}
|