From d772c4a5975724060665a02dcf0c9f4159ad231b Mon Sep 17 00:00:00 2001
From: Andrew Champion
Date: Wed, 1 Jan 2020 17:43:02 +0000
Subject: [PATCH 01/18] N5 source: relax canary test
Not all HTTP servers will serve N5 blocks as octet-streams, so relax the
test just to having a 200 status.
---
django/applications/catmaid/static/js/tile-source.js | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/django/applications/catmaid/static/js/tile-source.js b/django/applications/catmaid/static/js/tile-source.js
index a2e7f35078..fda35d6e28 100644
--- a/django/applications/catmaid/static/js/tile-source.js
+++ b/django/applications/catmaid/static/js/tile-source.js
@@ -689,11 +689,9 @@
let before = performance.now();
return fetch(new Request(url, options))
- .then((response) => {
- var contentHeader = response.headers.get('Content-Type');
- return [contentHeader && contentHeader.startsWith('application/octet-stream'),
- performance.now() - before];
- })
+ .then(response =>
+ [response.status === 200, performance.now() - before]
+ )
.catch(() => [false, Infinity]);
};
From 7c028dcddc6763f871d76dad9b6b355634007809 Mon Sep 17 00:00:00 2001
From: Andrew Champion
Date: Wed, 1 Jan 2020 17:44:42 +0000
Subject: [PATCH 02/18] N5 source: improve n5 root discovery
Rather than require the n5 root to either be at the base URL origin or a
directory ending in '.n5', recursively find the root directory in the
URL.
---
.../catmaid/static/js/tile-source.js | 31 +++++++++++++++----
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/django/applications/catmaid/static/js/tile-source.js b/django/applications/catmaid/static/js/tile-source.js
index fda35d6e28..4c67b62bd4 100644
--- a/django/applications/catmaid/static/js/tile-source.js
+++ b/django/applications/catmaid/static/js/tile-source.js
@@ -569,15 +569,16 @@
this.sliceDims = sliceDims.split('_').map(d => parseInt(d, 10));
this.reciprocalSliceDims = Array.from(Array(this.sliceDims.length).keys())
.sort((a, b) => this.sliceDims[a] - this.sliceDims[b]);
- let n5DirIndex = this.datasetURL.lastIndexOf('.n5');
- this.rootURL = n5DirIndex === -1 ?
- (new URL(this.datasetURL)).origin :
- this.datasetURL.substring(0, n5DirIndex + 3);
- this.datasetPathFormat = this.datasetURL.substring(this.rootURL.length + 1);
+ // Because we cannot infer the root URL, must find it exhaustively.
+ let n5SearchIndex = this.datasetURL.lastIndexOf('%SCALE_DATASET%');
+ // Initial guess of root:
+ this.rootURL = n5SearchIndex === -1 ?
+ this.datasetURL :
+ this.datasetURL.substring(0, n5SearchIndex);
this.datasetAttributes = [];
this.promiseReady = N5ImageBlockSource.loadN5()
- .then(n5wasm => n5wasm.N5HTTPFetch.open(this.rootURL).then(r => this.reader = r))
+ .then(n5wasm => this._findRoot(n5wasm).then(r => this.reader = r))
.then(() => this.populateDatasetAttributes());
this.ready = false;
}
@@ -598,6 +599,24 @@
return this.promiseN5wasm;
}
+ /** Find the root of this N5 container by recursively walking up the path. */
+ _findRoot(n5wasm) {
+ return n5wasm.N5HTTPFetch.open(this.rootURL)
+ .then(r => {
+ this.datasetPathFormat = this.datasetURL.substring(this.rootURL.length + 1);
+ return r;
+ })
+ .catch(error => {
+ let origin = (new URL(this.rootURL)).origin;
+ let nextDir = this.rootURL.lastIndexOf('/');
+ if (nextDir === -1 || origin == this.rootURL) {
+ throw error;
+ }
+ this.rootURL = this.rootURL.substring(0, nextDir);
+ return this._findRoot(n5wasm);
+ });
+ }
+
getTileURL(project, stack, slicePixelPosition, col, row, zoomLevel) {
let z = slicePixelPosition[0] / this.blockSize(zoomLevel)[2];
let sourceCoord = [col, row, z];
From 58f70e36a18e7c6b5fc05b4fd202162bc02194f4 Mon Sep 17 00:00:00 2001
From: Andrew Champion
Date: Thu, 2 Jan 2020 19:57:21 +0000
Subject: [PATCH 03/18] Fields: fix downsampling factors form from other
contexts
---
django/applications/catmaid/fields.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/django/applications/catmaid/fields.py b/django/applications/catmaid/fields.py
index a0f154050e..cb9d73ea47 100644
--- a/django/applications/catmaid/fields.py
+++ b/django/applications/catmaid/fields.py
@@ -382,8 +382,8 @@ def __init__(self, *args, **kwargs):
delimiter='|',
max_length=kwargs['max_length']),
)
- del kwargs['max_length']
- del kwargs['base_field']
+ kwargs.pop('max_length', None)
+ kwargs.pop('base_field', None)
super().__init__(fields, *args, **kwargs)
# Because SimpleArrayField does not strictly adhere to Django conventions,
# our widget must have access to its field so that `prepare_value` can
From a1d8e7934a021b7751fc9af353fb2675334e6a4d Mon Sep 17 00:00:00 2001
From: Andrew Champion
Date: Thu, 2 Jan 2020 19:57:57 +0000
Subject: [PATCH 04/18] N5 source: fix canary block lookup
---
django/applications/catmaid/static/js/tile-source.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/django/applications/catmaid/static/js/tile-source.js b/django/applications/catmaid/static/js/tile-source.js
index 4c67b62bd4..8f03cbd111 100644
--- a/django/applications/catmaid/static/js/tile-source.js
+++ b/django/applications/catmaid/static/js/tile-source.js
@@ -618,7 +618,7 @@
}
getTileURL(project, stack, slicePixelPosition, col, row, zoomLevel) {
- let z = slicePixelPosition[0] / this.blockSize(zoomLevel)[2];
+ let z = Math.floor(slicePixelPosition[0] / this.blockSize(zoomLevel)[2]);
let sourceCoord = [col, row, z];
let blockCoord = CATMAID.tools.permute(sourceCoord, this.reciprocalSliceDims);
From 84913939b0a423157d8cc3576c57fa0bd7f0cc6d Mon Sep 17 00:00:00 2001
From: Andrew Champion
Date: Thu, 2 Jan 2020 19:59:26 +0000
Subject: [PATCH 05/18] Create import wizard for image block sources
Currently image block sources are N5-only, but this will soon change.
This wizard makes create image block stacks easier by reading the
dimension, resolution, scale levels, and downsampling factors directly
from the N5 if possible. It also creates the arcane base URL string
automatically.
---
django/applications/catmaid/admin.py | 3 +
.../imageblocksourceimport/container.html | 7 +
.../catmaid/imageblocksourceimport/stack.html | 141 ++++++++++++++++++
.../views/image_block_source_importer.py | 105 +++++++++++++
4 files changed, 256 insertions(+)
create mode 100644 django/applications/catmaid/templates/catmaid/imageblocksourceimport/container.html
create mode 100644 django/applications/catmaid/templates/catmaid/imageblocksourceimport/stack.html
create mode 100644 django/applications/catmaid/views/image_block_source_importer.py
diff --git a/django/applications/catmaid/admin.py b/django/applications/catmaid/admin.py
index 0bf12a003a..9213c865de 100644
--- a/django/applications/catmaid/admin.py
+++ b/django/applications/catmaid/admin.py
@@ -31,6 +31,7 @@
from catmaid.views.dvid import DVIDImportWizard
from catmaid.views.userimporter import UserImportWizard
from catmaid.views.dataexporter import CatmaidDataExportWizard
+from catmaid.views.image_block_source_importer import ImageBlockSourceImportWizard
def add_related_field_wrapper(form, col_name, rel=None) -> None:
"""Wrap a field on a form so that a little plus sign appears right next to
@@ -547,3 +548,5 @@ def color(self):
view=UserImportWizard.as_view())
admin.site.register_view('catmaiddataexporter', 'CATMAID data export',
view=CatmaidDataExportWizard.as_view())
+admin.site.register_view('imageblocksourceimporter', 'Import N5 source stacks',
+ view=ImageBlockSourceImportWizard.as_view())
diff --git a/django/applications/catmaid/templates/catmaid/imageblocksourceimport/container.html b/django/applications/catmaid/templates/catmaid/imageblocksourceimport/container.html
new file mode 100644
index 0000000000..45697b2569
--- /dev/null
+++ b/django/applications/catmaid/templates/catmaid/imageblocksourceimport/container.html
@@ -0,0 +1,7 @@
+{% extends "catmaid/form_wizard.html" %}
+
+{% block stepinfo %}
+
+Insert the URL of an N5 container root below and continue.
+
+{% endblock %}
diff --git a/django/applications/catmaid/templates/catmaid/imageblocksourceimport/stack.html b/django/applications/catmaid/templates/catmaid/imageblocksourceimport/stack.html
new file mode 100644
index 0000000000..b3043e3366
--- /dev/null
+++ b/django/applications/catmaid/templates/catmaid/imageblocksourceimport/stack.html
@@ -0,0 +1,141 @@
+{% extends "catmaid/form_wizard.html" %}
+{% load i18n admin_static %}
+
+{% block extrahead %}
+ {{ block.super }}
+
+{% endblock %}
+
+{% block stepinfo %}
+
+Review the properties of the discovered dataset scales and select the slicing
+dimensions. You will be able to change other properties of the stack after
+creating it.
+
+
+
+
+ Scale Level |
+ Data Type |
+ Compression |
+ Dimension |
+ Resolution |
+ Downsample Factors |
+ Block Size |
+
+
+
+
+
+
+{% endblock %}
diff --git a/django/applications/catmaid/views/image_block_source_importer.py b/django/applications/catmaid/views/image_block_source_importer.py
new file mode 100644
index 0000000000..534b4ac3a2
--- /dev/null
+++ b/django/applications/catmaid/views/image_block_source_importer.py
@@ -0,0 +1,105 @@
+# -*- coding: utf-8 -*-
+
+import json
+
+from django import forms
+from django.core.exceptions import ValidationError
+from django.contrib import messages
+from django.shortcuts import redirect
+
+from formtools.wizard.views import SessionWizardView
+
+from catmaid.models import (
+ Stack, StackMirror, Project, ProjectStack, StackGroup,
+ StackStackGroup, StackGroupRelation,
+)
+from catmaid.fields import (
+ Double3DFormField, DownsampleFactorsField, DownsampleFactorsFormField,
+ Integer3DFormField,
+)
+
+
+TEMPLATES = {
+ 'container': 'catmaid/imageblocksourceimport/container.html',
+ 'stack': 'catmaid/imageblocksourceimport/stack.html',
+}
+
+TILE_SOURCE_TYPE = 11
+
+class ContainerForm(forms.Form):
+ container = forms.URLField(label='N5 Root', widget=forms.TextInput(attrs={'size':80}),
+ help_text='URL to the root of the N5 container containing your stack')
+ dataset = forms.CharField(widget=forms.TextInput(attrs={'size':80}),
+ help_text='Path to the stack dataset, not incuding scale level')
+ has_scales = forms.BooleanField(required=False, label='Dataset has scale levels')
+
+
+class StackForm(forms.Form):
+ title = forms.CharField(help_text='Title of the new stack')
+ slicing_dims = Integer3DFormField(initial=[0, 1, 2],
+ help_text='Dimensions to slice the dataset corresponding the the X, Y '
+ 'and Z of the CATMAID stack')
+ block_size = Integer3DFormField()
+ dimension = Integer3DFormField()
+ resolution = Double3DFormField()
+ downsample_factors = DownsampleFactorsFormField(required=False, initial=[[1, 1, 1]], max_length=255)
+
+
+class ImageBlockSourceImportWizard(SessionWizardView):
+ form_list = [('container', ContainerForm), ('stack', StackForm)]
+
+ def get_template_names(self):
+ return TEMPLATES[self.steps.current]
+
+ def get_context_data(self, form, **kwargs):
+ context = super().get_context_data(form=form, **kwargs)
+
+ if self.steps:
+ if self.steps.current == 'stack':
+ context['container'] = self.get_cleaned_data_for_step('container')['container']
+ context['dataset'] = self.get_cleaned_data_for_step('container')['dataset']
+ context['has_scales'] = self.get_cleaned_data_for_step('container')['has_scales']
+
+ context.update({
+ 'title': 'N5 Source Importer',
+ })
+
+ return context
+
+ def done(self, form_list, **kwargs):
+ container = self.get_cleaned_data_for_step('container')['container']
+ dataset = self.get_cleaned_data_for_step('container')['dataset']
+ has_scales = self.get_cleaned_data_for_step('container')['has_scales']
+ slicing_dims = self.get_cleaned_data_for_step('stack')['slicing_dims']
+ title = self.get_cleaned_data_for_step('stack')['title']
+ dimension = self.get_cleaned_data_for_step('stack')['dimension']
+ resolution = self.get_cleaned_data_for_step('stack')['resolution']
+ downsample_factors = self.get_cleaned_data_for_step('stack')['downsample_factors']
+ block_size = self.get_cleaned_data_for_step('stack')['block_size']
+
+ image_base = n5_source_url(container, dataset, has_scales, slicing_dims)
+
+ stack = Stack(
+ title=title,
+ dimension=dimension,
+ resolution=resolution,
+ downsample_factors=downsample_factors)
+ stack.save()
+ mirror = StackMirror.objects.create(
+ title='default',
+ stack=stack,
+ image_base=image_base,
+ file_extension='',
+ tile_width=block_size.x,
+ tile_height=block_size.y,
+ tile_source_type=TILE_SOURCE_TYPE)
+
+ msg = 'A new stack was successfully created.'
+
+ messages.add_message(self.request, messages.SUCCESS, msg)
+ return redirect(f'catmaid/stack/{stack.id}/change/')
+
+def n5_source_url(container, dataset, has_scales, slicing_dims) -> str:
+ scales = '/%SCALE_DATASET%' if has_scales else ''
+ slice_str = '_'.join(str(i) for i in [slicing_dims.x, slicing_dims.y, slicing_dims.z])
+ return f"{container}/{dataset}{scales}/{slice_str}"
From 4493504d2b37855b0b30353f997dd2a5522f5561 Mon Sep 17 00:00:00 2001
From: Andrew Champion
Date: Thu, 2 Jan 2020 20:14:52 +0000
Subject: [PATCH 06/18] N5 source: update n5-wasm
Update n5-wasm to commit 9a68a5228ff0f12038d1b0093a40a64774a706b2. This
fixes a few bugs, makes minor performance improvements, and halves the
size of the WASM binary.
---
.../catmaid/static/libs/n5-wasm/n5_wasm.js | 2342 +++++++----------
.../static/libs/n5-wasm/n5_wasm_bg.wasm | Bin 1171156 -> 426847 bytes
2 files changed, 1015 insertions(+), 1327 deletions(-)
diff --git a/django/applications/catmaid/static/libs/n5-wasm/n5_wasm.js b/django/applications/catmaid/static/libs/n5-wasm/n5_wasm.js
index 2ad6a81b3b..885527ae99 100644
--- a/django/applications/catmaid/static/libs/n5-wasm/n5_wasm.js
+++ b/django/applications/catmaid/static/libs/n5-wasm/n5_wasm.js
@@ -1,141 +1,6 @@
-const __exports = {};
let wasm;
-let cachegetInt32Memory = null;
-function getInt32Memory() {
- if (cachegetInt32Memory === null || cachegetInt32Memory.buffer !== wasm.memory.buffer) {
- cachegetInt32Memory = new Int32Array(wasm.memory.buffer);
- }
- return cachegetInt32Memory;
-}
-
-function getArrayI32FromWasm(ptr, len) {
- return getInt32Memory().subarray(ptr / 4, ptr / 4 + len);
-}
-
-let cachedGlobalArgumentPtr = null;
-function globalArgumentPtr() {
- if (cachedGlobalArgumentPtr === null) {
- cachedGlobalArgumentPtr = wasm.__wbindgen_global_argument_ptr();
- }
- return cachedGlobalArgumentPtr;
-}
-
-let cachegetUint32Memory = null;
-function getUint32Memory() {
- if (cachegetUint32Memory === null || cachegetUint32Memory.buffer !== wasm.memory.buffer) {
- cachegetUint32Memory = new Uint32Array(wasm.memory.buffer);
- }
- return cachegetUint32Memory;
-}
-
-let cachegetInt64Memory = null;
-function getInt64Memory() {
- if (cachegetInt64Memory === null || cachegetInt64Memory.buffer !== wasm.memory.buffer) {
- cachegetInt64Memory = new BigInt64Array(wasm.memory.buffer);
- }
- return cachegetInt64Memory;
-}
-
-function getArrayI64FromWasm(ptr, len) {
- return getInt64Memory().subarray(ptr / 8, ptr / 8 + len);
-}
-
-let cachegetUint8Memory = null;
-function getUint8Memory() {
- if (cachegetUint8Memory === null || cachegetUint8Memory.buffer !== wasm.memory.buffer) {
- cachegetUint8Memory = new Uint8Array(wasm.memory.buffer);
- }
- return cachegetUint8Memory;
-}
-
-function getArrayU8FromWasm(ptr, len) {
- return getUint8Memory().subarray(ptr / 1, ptr / 1 + len);
-}
-
-let cachedTextDecoder = new TextDecoder('utf-8');
-
-function getStringFromWasm(ptr, len) {
- return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len));
-}
-
-let cachegetUint16Memory = null;
-function getUint16Memory() {
- if (cachegetUint16Memory === null || cachegetUint16Memory.buffer !== wasm.memory.buffer) {
- cachegetUint16Memory = new Uint16Array(wasm.memory.buffer);
- }
- return cachegetUint16Memory;
-}
-
-function getArrayU16FromWasm(ptr, len) {
- return getUint16Memory().subarray(ptr / 2, ptr / 2 + len);
-}
-
-function getArrayU32FromWasm(ptr, len) {
- return getUint32Memory().subarray(ptr / 4, ptr / 4 + len);
-}
-
-let cachegetUint64Memory = null;
-function getUint64Memory() {
- if (cachegetUint64Memory === null || cachegetUint64Memory.buffer !== wasm.memory.buffer) {
- cachegetUint64Memory = new BigUint64Array(wasm.memory.buffer);
- }
- return cachegetUint64Memory;
-}
-
-function getArrayU64FromWasm(ptr, len) {
- return getUint64Memory().subarray(ptr / 8, ptr / 8 + len);
-}
-
-let cachegetInt8Memory = null;
-function getInt8Memory() {
- if (cachegetInt8Memory === null || cachegetInt8Memory.buffer !== wasm.memory.buffer) {
- cachegetInt8Memory = new Int8Array(wasm.memory.buffer);
- }
- return cachegetInt8Memory;
-}
-
-function getArrayI8FromWasm(ptr, len) {
- return getInt8Memory().subarray(ptr / 1, ptr / 1 + len);
-}
-
-let cachegetInt16Memory = null;
-function getInt16Memory() {
- if (cachegetInt16Memory === null || cachegetInt16Memory.buffer !== wasm.memory.buffer) {
- cachegetInt16Memory = new Int16Array(wasm.memory.buffer);
- }
- return cachegetInt16Memory;
-}
-
-function getArrayI16FromWasm(ptr, len) {
- return getInt16Memory().subarray(ptr / 2, ptr / 2 + len);
-}
-
-let cachegetFloat32Memory = null;
-function getFloat32Memory() {
- if (cachegetFloat32Memory === null || cachegetFloat32Memory.buffer !== wasm.memory.buffer) {
- cachegetFloat32Memory = new Float32Array(wasm.memory.buffer);
- }
- return cachegetFloat32Memory;
-}
-
-function getArrayF32FromWasm(ptr, len) {
- return getFloat32Memory().subarray(ptr / 4, ptr / 4 + len);
-}
-
-let cachegetFloat64Memory = null;
-function getFloat64Memory() {
- if (cachegetFloat64Memory === null || cachegetFloat64Memory.buffer !== wasm.memory.buffer) {
- cachegetFloat64Memory = new Float64Array(wasm.memory.buffer);
- }
- return cachegetFloat64Memory;
-}
-
-function getArrayF64FromWasm(ptr, len) {
- return getFloat64Memory().subarray(ptr / 8, ptr / 8 + len);
-}
-
const heap = new Array(32);
heap.fill(undefined);
@@ -144,47 +9,20 @@ heap.push(undefined, null, true, false);
function getObject(idx) { return heap[idx]; }
-let WASM_VECTOR_LEN = 0;
-
-let cachedTextEncoder = new TextEncoder('utf-8');
-
-let passStringToWasm;
-if (typeof cachedTextEncoder.encodeInto === 'function') {
- passStringToWasm = function(arg) {
-
- let size = arg.length;
- let ptr = wasm.__wbindgen_malloc(size);
- let writeOffset = 0;
- while (true) {
- const view = getUint8Memory().subarray(ptr + writeOffset, ptr + size);
- const { read, written } = cachedTextEncoder.encodeInto(arg, view);
- writeOffset += written;
- if (read === arg.length) {
- break;
- }
- arg = arg.substring(read);
- ptr = wasm.__wbindgen_realloc(ptr, size, size += arg.length * 3);
- }
- WASM_VECTOR_LEN = writeOffset;
- return ptr;
- };
-} else {
- passStringToWasm = function(arg) {
+let heap_next = heap.length;
- const buf = cachedTextEncoder.encode(arg);
- const ptr = wasm.__wbindgen_malloc(buf.length);
- getUint8Memory().set(buf, ptr);
- WASM_VECTOR_LEN = buf.length;
- return ptr;
- };
+function dropObject(idx) {
+ if (idx < 36) return;
+ heap[idx] = heap_next;
+ heap_next = idx;
}
-function isLikeNone(x) {
- return x === undefined || x === null;
+function takeObject(idx) {
+ const ret = getObject(idx);
+ dropObject(idx);
+ return ret;
}
-let heap_next = heap.length;
-
function addHeapObject(obj) {
if (heap_next === heap.length) heap.push(heap.length + 1);
const idx = heap_next;
@@ -194,375 +32,280 @@ function addHeapObject(obj) {
return idx;
}
-function handleError(exnptr, e) {
- const view = getUint32Memory();
- view[exnptr / 4] = 1;
- view[exnptr / 4 + 1] = addHeapObject(e);
-}
+let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
-function __widl_f_get_Headers(ret, arg0, arg1, arg2, exnptr) {
- let varg1 = getStringFromWasm(arg1, arg2);
- try {
- const val = getObject(arg0).get(varg1);
- const retptr = isLikeNone(val) ? [0, 0] : passStringToWasm(val);
- const retlen = WASM_VECTOR_LEN;
- const mem = getUint32Memory();
- mem[ret / 4] = retptr;
- mem[ret / 4 + 1] = retlen;
+cachedTextDecoder.decode();
- } catch (e) {
- handleError(exnptr, e);
+let cachegetUint8Memory0 = null;
+function getUint8Memory0() {
+ if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) {
+ cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer);
}
+ return cachegetUint8Memory0;
}
-__exports.__widl_f_get_Headers = __widl_f_get_Headers;
-
-function __widl_f_new_with_str_and_init_Request(arg0, arg1, arg2, exnptr) {
- let varg0 = getStringFromWasm(arg0, arg1);
- try {
- return addHeapObject(new Request(varg0, getObject(arg2)));
- } catch (e) {
- handleError(exnptr, e);
- }
+function getStringFromWasm0(ptr, len) {
+ return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
}
-__exports.__widl_f_new_with_str_and_init_Request = __widl_f_new_with_str_and_init_Request;
-
-function __widl_instanceof_Response(idx) { return getObject(idx) instanceof Response ? 1 : 0; }
-
-__exports.__widl_instanceof_Response = __widl_instanceof_Response;
-
-function __widl_f_ok_Response(arg0) {
- return getObject(arg0).ok;
-}
-
-__exports.__widl_f_ok_Response = __widl_f_ok_Response;
-
-function __widl_f_headers_Response(arg0) {
- return addHeapObject(getObject(arg0).headers);
-}
+let WASM_VECTOR_LEN = 0;
-__exports.__widl_f_headers_Response = __widl_f_headers_Response;
+let cachedTextEncoder = new TextEncoder('utf-8');
-function __widl_f_array_buffer_Response(arg0, exnptr) {
- try {
- return addHeapObject(getObject(arg0).arrayBuffer());
- } catch (e) {
- handleError(exnptr, e);
- }
+const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
+ ? function (arg, view) {
+ return cachedTextEncoder.encodeInto(arg, view);
}
+ : function (arg, view) {
+ const buf = cachedTextEncoder.encode(arg);
+ view.set(buf);
+ return {
+ read: arg.length,
+ written: buf.length
+ };
+});
-__exports.__widl_f_array_buffer_Response = __widl_f_array_buffer_Response;
+function passStringToWasm0(arg, malloc, realloc) {
-function __widl_f_json_Response(arg0, exnptr) {
- try {
- return addHeapObject(getObject(arg0).json());
- } catch (e) {
- handleError(exnptr, e);
+ if (realloc === undefined) {
+ const buf = cachedTextEncoder.encode(arg);
+ const ptr = malloc(buf.length);
+ getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf);
+ WASM_VECTOR_LEN = buf.length;
+ return ptr;
}
-}
-__exports.__widl_f_json_Response = __widl_f_json_Response;
+ let len = arg.length;
+ let ptr = malloc(len);
-function __widl_instanceof_Window(idx) { return getObject(idx) instanceof Window ? 1 : 0; }
+ const mem = getUint8Memory0();
-__exports.__widl_instanceof_Window = __widl_instanceof_Window;
+ let offset = 0;
-function __widl_f_fetch_with_request_Window(arg0, arg1) {
- return addHeapObject(getObject(arg0).fetch(getObject(arg1)));
-}
-
-__exports.__widl_f_fetch_with_request_Window = __widl_f_fetch_with_request_Window;
+ for (; offset < len; offset++) {
+ const code = arg.charCodeAt(offset);
+ if (code > 0x7F) break;
+ mem[ptr + offset] = code;
+ }
-function __wbg_instanceof_ArrayBuffer_3d6b4293ffaf7aa6(idx) { return getObject(idx) instanceof ArrayBuffer ? 1 : 0; }
+ if (offset !== len) {
+ if (offset !== 0) {
+ arg = arg.slice(offset);
+ }
+ ptr = realloc(ptr, len, len = offset + arg.length * 3);
+ const view = getUint8Memory0().subarray(ptr + offset, ptr + len);
+ const ret = encodeString(arg, view);
-__exports.__wbg_instanceof_ArrayBuffer_3d6b4293ffaf7aa6 = __wbg_instanceof_ArrayBuffer_3d6b4293ffaf7aa6;
+ offset += ret.written;
+ }
-function __wbg_new_098793756709d10a(arg0, arg1) {
- let varg0 = getStringFromWasm(arg0, arg1);
- return addHeapObject(new Error(varg0));
+ WASM_VECTOR_LEN = offset;
+ return ptr;
}
-__exports.__wbg_new_098793756709d10a = __wbg_new_098793756709d10a;
-
-function __wbg_newnoargs_9fab447a311888a5(arg0, arg1) {
- let varg0 = getStringFromWasm(arg0, arg1);
- return addHeapObject(new Function(varg0));
+let cachegetInt32Memory0 = null;
+function getInt32Memory0() {
+ if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) {
+ cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer);
+ }
+ return cachegetInt32Memory0;
}
-__exports.__wbg_newnoargs_9fab447a311888a5 = __wbg_newnoargs_9fab447a311888a5;
-
-function __wbg_call_001e26aeb2fdef67(arg0, arg1, exnptr) {
- try {
- return addHeapObject(getObject(arg0).call(getObject(arg1)));
- } catch (e) {
- handleError(exnptr, e);
+function debugString(val) {
+ // primitive types
+ const type = typeof val;
+ if (type == 'number' || type == 'boolean' || val == null) {
+ return `${val}`;
}
+ if (type == 'string') {
+ return `"${val}"`;
+ }
+ if (type == 'symbol') {
+ const description = val.description;
+ if (description == null) {
+ return 'Symbol';
+ } else {
+ return `Symbol(${description})`;
+ }
+ }
+ if (type == 'function') {
+ const name = val.name;
+ if (typeof name == 'string' && name.length > 0) {
+ return `Function(${name})`;
+ } else {
+ return 'Function';
+ }
+ }
+ // objects
+ if (Array.isArray(val)) {
+ const length = val.length;
+ let debug = '[';
+ if (length > 0) {
+ debug += debugString(val[0]);
+ }
+ for(let i = 1; i < length; i++) {
+ debug += ', ' + debugString(val[i]);
+ }
+ debug += ']';
+ return debug;
+ }
+ // Test for built-in
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
+ let className;
+ if (builtInMatches.length > 1) {
+ className = builtInMatches[1];
+ } else {
+ // Failed to match the standard '[object ClassName]'
+ return toString.call(val);
+ }
+ if (className == 'Object') {
+ // we're a user defined class or Object
+ // JSON.stringify avoids problems with cycles, and is generally much
+ // easier than looping through ownProperties of `val`.
+ try {
+ return 'Object(' + JSON.stringify(val) + ')';
+ } catch (_) {
+ return 'Object';
+ }
+ }
+ // errors
+ if (val instanceof Error) {
+ return `${val.name}: ${val.message}\n${val.stack}`;
+ }
+ // TODO we could test for more things here, like `Set`s and `Map`s.
+ return className;
+}
+function __wbg_adapter_22(arg0, arg1, arg2) {
+ wasm.wasm_bindgen__convert__closures__invoke1_mut__h8a583b1c3a09752e(arg0, arg1, addHeapObject(arg2));
}
-__exports.__wbg_call_001e26aeb2fdef67 = __wbg_call_001e26aeb2fdef67;
-
-function __wbg_call_32cfc8705e333e03(arg0, arg1, arg2, exnptr) {
- try {
- return addHeapObject(getObject(arg0).call(getObject(arg1), getObject(arg2)));
- } catch (e) {
- handleError(exnptr, e);
+let cachegetUint32Memory0 = null;
+function getUint32Memory0() {
+ if (cachegetUint32Memory0 === null || cachegetUint32Memory0.buffer !== wasm.memory.buffer) {
+ cachegetUint32Memory0 = new Uint32Array(wasm.memory.buffer);
}
+ return cachegetUint32Memory0;
}
-__exports.__wbg_call_32cfc8705e333e03 = __wbg_call_32cfc8705e333e03;
-
-function __wbg_new_3c2b6ca34902aebb() {
- return addHeapObject(new Object());
+function getArrayU32FromWasm0(ptr, len) {
+ return getUint32Memory0().subarray(ptr / 4, ptr / 4 + len);
}
-__exports.__wbg_new_3c2b6ca34902aebb = __wbg_new_3c2b6ca34902aebb;
-
-function __wbg_new_b2ae0eb8a50f5a8d(arg0, arg1) {
- let cbarg0 = function(arg0, arg1) {
- let a = this.a;
- this.a = 0;
- try {
- return this.f(a, this.b, addHeapObject(arg0), addHeapObject(arg1));
-
- } finally {
- this.a = a;
-
- }
-
- };
- cbarg0.f = wasm.__wbg_function_table.get(43);
- cbarg0.a = arg0;
- cbarg0.b = arg1;
- try {
- return addHeapObject(new Promise(cbarg0.bind(cbarg0)));
- } finally {
- cbarg0.a = cbarg0.b = 0;
-
+let cachegetUint64Memory0 = null;
+function getUint64Memory0() {
+ if (cachegetUint64Memory0 === null || cachegetUint64Memory0.buffer !== wasm.memory.buffer) {
+ cachegetUint64Memory0 = new BigUint64Array(wasm.memory.buffer);
}
+ return cachegetUint64Memory0;
}
-__exports.__wbg_new_b2ae0eb8a50f5a8d = __wbg_new_b2ae0eb8a50f5a8d;
-
-function __wbg_resolve_13a0331c403143fa(arg0) {
- return addHeapObject(Promise.resolve(getObject(arg0)));
+function getArrayU64FromWasm0(ptr, len) {
+ return getUint64Memory0().subarray(ptr / 8, ptr / 8 + len);
}
-__exports.__wbg_resolve_13a0331c403143fa = __wbg_resolve_13a0331c403143fa;
-
-function __wbg_then_19e0dd10f4df0a30(arg0, arg1) {
- return addHeapObject(getObject(arg0).then(getObject(arg1)));
+function getArrayU8FromWasm0(ptr, len) {
+ return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
}
-__exports.__wbg_then_19e0dd10f4df0a30 = __wbg_then_19e0dd10f4df0a30;
-
-function __wbg_then_b324e05c8e37044e(arg0, arg1, arg2) {
- return addHeapObject(getObject(arg0).then(getObject(arg1), getObject(arg2)));
+let cachegetUint16Memory0 = null;
+function getUint16Memory0() {
+ if (cachegetUint16Memory0 === null || cachegetUint16Memory0.buffer !== wasm.memory.buffer) {
+ cachegetUint16Memory0 = new Uint16Array(wasm.memory.buffer);
+ }
+ return cachegetUint16Memory0;
}
-__exports.__wbg_then_b324e05c8e37044e = __wbg_then_b324e05c8e37044e;
-
-function __wbg_new_6b3ab5e2fe312112(arg0) {
- return addHeapObject(new Uint8Array(getObject(arg0)));
+function getArrayU16FromWasm0(ptr, len) {
+ return getUint16Memory0().subarray(ptr / 2, ptr / 2 + len);
}
-__exports.__wbg_new_6b3ab5e2fe312112 = __wbg_new_6b3ab5e2fe312112;
-
-function __wbg_length_d64a6433b03c9a9b(arg0) {
- return getObject(arg0).length;
+let cachegetInt8Memory0 = null;
+function getInt8Memory0() {
+ if (cachegetInt8Memory0 === null || cachegetInt8Memory0.buffer !== wasm.memory.buffer) {
+ cachegetInt8Memory0 = new Int8Array(wasm.memory.buffer);
+ }
+ return cachegetInt8Memory0;
}
-__exports.__wbg_length_d64a6433b03c9a9b = __wbg_length_d64a6433b03c9a9b;
-
-function __wbg_set_cfded41e0819224d(arg0, arg1, arg2) {
- getObject(arg0).set(getObject(arg1), arg2 >>> 0);
+function getArrayI8FromWasm0(ptr, len) {
+ return getInt8Memory0().subarray(ptr / 1, ptr / 1 + len);
}
-__exports.__wbg_set_cfded41e0819224d = __wbg_set_cfded41e0819224d;
-
-function __wbg_set_34c130f3bc2d6809(arg0, arg1, arg2, exnptr) {
- try {
- return Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
- } catch (e) {
- handleError(exnptr, e);
+let cachegetInt16Memory0 = null;
+function getInt16Memory0() {
+ if (cachegetInt16Memory0 === null || cachegetInt16Memory0.buffer !== wasm.memory.buffer) {
+ cachegetInt16Memory0 = new Int16Array(wasm.memory.buffer);
}
+ return cachegetInt16Memory0;
}
-__exports.__wbg_set_34c130f3bc2d6809 = __wbg_set_34c130f3bc2d6809;
-
-function __wbg_buffer_85e60d809f6cd4e8(arg0) {
- return addHeapObject(getObject(arg0).buffer);
+function getArrayI16FromWasm0(ptr, len) {
+ return getInt16Memory0().subarray(ptr / 2, ptr / 2 + len);
}
-__exports.__wbg_buffer_85e60d809f6cd4e8 = __wbg_buffer_85e60d809f6cd4e8;
-
-function dropObject(idx) {
- if (idx < 36) return;
- heap[idx] = heap_next;
- heap_next = idx;
+function getArrayI32FromWasm0(ptr, len) {
+ return getInt32Memory0().subarray(ptr / 4, ptr / 4 + len);
}
-function takeObject(idx) {
- const ret = getObject(idx);
- dropObject(idx);
- return ret;
+let cachegetInt64Memory0 = null;
+function getInt64Memory0() {
+ if (cachegetInt64Memory0 === null || cachegetInt64Memory0.buffer !== wasm.memory.buffer) {
+ cachegetInt64Memory0 = new BigInt64Array(wasm.memory.buffer);
+ }
+ return cachegetInt64Memory0;
}
-function passArray64ToWasm(arg) {
- const ptr = wasm.__wbindgen_malloc(arg.length * 8);
- getUint64Memory().set(arg, ptr / 8);
- WASM_VECTOR_LEN = arg.length;
- return ptr;
+function getArrayI64FromWasm0(ptr, len) {
+ return getInt64Memory0().subarray(ptr / 8, ptr / 8 + len);
}
-function __wbindgen_string_new(p, l) { return addHeapObject(getStringFromWasm(p, l)); }
-
-__exports.__wbindgen_string_new = __wbindgen_string_new;
-
-function __wbindgen_debug_string(i, len_ptr) {
- const debug_str =
- val => {
- // primitive types
- const type = typeof val;
- if (type == 'number' || type == 'boolean' || val == null) {
- return `${val}`;
- }
- if (type == 'string') {
- return `"${val}"`;
- }
- if (type == 'symbol') {
- const description = val.description;
- if (description == null) {
- return 'Symbol';
- } else {
- return `Symbol(${description})`;
- }
- }
- if (type == 'function') {
- const name = val.name;
- if (typeof name == 'string' && name.length > 0) {
- return `Function(${name})`;
- } else {
- return 'Function';
- }
- }
- // objects
- if (Array.isArray(val)) {
- const length = val.length;
- let debug = '[';
- if (length > 0) {
- debug += debug_str(val[0]);
- }
- for(let i = 1; i < length; i++) {
- debug += ', ' + debug_str(val[i]);
- }
- debug += ']';
- return debug;
- }
- // Test for built-in
- const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
- let className;
- if (builtInMatches.length > 1) {
- className = builtInMatches[1];
- } else {
- // Failed to match the standard '[object ClassName]'
- return toString.call(val);
- }
- if (className == 'Object') {
- // we're a user defined class or Object
- // JSON.stringify avoids problems with cycles, and is generally much
- // easier than looping through ownProperties of `val`.
- try {
- return 'Object(' + JSON.stringify(val) + ')';
- } catch (_) {
- return 'Object';
- }
- }
- // errors
- if (val instanceof Error) {
- return `${val.name}: ${val.message}
- ${val.stack}`;
+let cachegetFloat32Memory0 = null;
+function getFloat32Memory0() {
+ if (cachegetFloat32Memory0 === null || cachegetFloat32Memory0.buffer !== wasm.memory.buffer) {
+ cachegetFloat32Memory0 = new Float32Array(wasm.memory.buffer);
}
- // TODO we could test for more things here, like `Set`s and `Map`s.
- return className;
-}
-;
-const toString = Object.prototype.toString;
-const val = getObject(i);
-const debug = debug_str(val);
-const ptr = passStringToWasm(debug);
-getUint32Memory()[len_ptr / 4] = WASM_VECTOR_LEN;
-return ptr;
+ return cachegetFloat32Memory0;
}
-__exports.__wbindgen_debug_string = __wbindgen_debug_string;
+function getArrayF32FromWasm0(ptr, len) {
+ return getFloat32Memory0().subarray(ptr / 4, ptr / 4 + len);
+}
-function __wbindgen_cb_drop(i) {
- const obj = takeObject(i).original;
- if (obj.cnt-- == 1) {
- obj.a = 0;
- return 1;
+let cachegetFloat64Memory0 = null;
+function getFloat64Memory0() {
+ if (cachegetFloat64Memory0 === null || cachegetFloat64Memory0.buffer !== wasm.memory.buffer) {
+ cachegetFloat64Memory0 = new Float64Array(wasm.memory.buffer);
}
- return 0;
+ return cachegetFloat64Memory0;
}
-__exports.__wbindgen_cb_drop = __wbindgen_cb_drop;
-
-function __wbindgen_json_parse(ptr, len) { return addHeapObject(JSON.parse(getStringFromWasm(ptr, len))); }
-
-__exports.__wbindgen_json_parse = __wbindgen_json_parse;
-
-function __wbindgen_json_serialize(idx, ptrptr) {
- const ptr = passStringToWasm(JSON.stringify(getObject(idx)));
- getUint32Memory()[ptrptr / 4] = ptr;
- return WASM_VECTOR_LEN;
+function getArrayF64FromWasm0(ptr, len) {
+ return getFloat64Memory0().subarray(ptr / 8, ptr / 8 + len);
}
-__exports.__wbindgen_json_serialize = __wbindgen_json_serialize;
-
-function __wbindgen_memory() { return addHeapObject(wasm.memory); }
-
-__exports.__wbindgen_memory = __wbindgen_memory;
-
-function __wbindgen_throw(ptr, len) {
- throw new Error(getStringFromWasm(ptr, len));
+function handleError(e) {
+ wasm.__wbindgen_exn_store(addHeapObject(e));
}
-
-__exports.__wbindgen_throw = __wbindgen_throw;
-
-function __wbindgen_closure_wrapper143(a, b, _ignored) {
- const f = wasm.__wbg_function_table.get(8);
- const d = wasm.__wbg_function_table.get(9);
- const cb = function(arg0) {
- this.cnt++;
- let a = this.a;
- this.a = 0;
- try {
- return f(a, b, addHeapObject(arg0));
-
- } finally {
- if (--this.cnt === 0) d(a, b);
- else this.a = a;
-
- }
-
- };
- cb.a = a;
- cb.cnt = 1;
- let real = cb.bind(cb);
- real.original = cb;
- return addHeapObject(real);
+function __wbg_adapter_115(arg0, arg1, arg2, arg3) {
+ wasm.wasm_bindgen__convert__closures__invoke2_mut__h0903106463517c12(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
}
-__exports.__wbindgen_closure_wrapper143 = __wbindgen_closure_wrapper143;
-
-function __wbg_datasetattributes_new(ptr) { return addHeapObject(DatasetAttributes.__wrap(ptr)); }
-
-__exports.__wbg_datasetattributes_new = __wbg_datasetattributes_new;
+function _assertClass(instance, klass) {
+ if (!(instance instanceof klass)) {
+ throw new Error(`expected instance of ${klass.name}`);
+ }
+ return instance.ptr;
+}
-function freeDatasetAttributes(ptr) {
+function passArray64ToWasm0(arg, malloc) {
+ const ptr = malloc(arg.length * 8);
+ getUint64Memory0().set(arg, ptr / 8);
+ WASM_VECTOR_LEN = arg.length;
+ return ptr;
+}
- wasm.__wbg_datasetattributes_free(ptr);
+function isLikeNone(x) {
+ return x === undefined || x === null;
}
/**
*/
@@ -578,101 +321,81 @@ export class DatasetAttributes {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeDatasetAttributes(ptr);
- }
+ wasm.__wbg_datasetattributes_free(ptr);
+ }
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_dimensions() {
- const retptr = globalArgumentPtr();
- wasm.datasetattributes_get_dimensions(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_block_size() {
- const retptr = globalArgumentPtr();
- wasm.datasetattributes_get_block_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {string}
*/
get_data_type() {
- const retptr = globalArgumentPtr();
- wasm.datasetattributes_get_data_type(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ try {
+ wasm.datasetattributes_get_data_type(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ return getStringFromWasm0(r0, r1);
+ } finally {
+ wasm.__wbindgen_free(r0, r1);
+ }
}
/**
* @returns {string}
*/
get_compression() {
- const retptr = globalArgumentPtr();
- wasm.datasetattributes_get_compression(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ try {
+ wasm.datasetattributes_get_compression(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ return getStringFromWasm0(r0, r1);
+ } finally {
+ wasm.__wbindgen_free(r0, r1);
+ }
}
/**
* @returns {number}
*/
get_ndim() {
- return wasm.datasetattributes_get_ndim(this.ptr) >>> 0;
+ var ret = wasm.datasetattributes_get_ndim(this.ptr);
+ return ret >>> 0;
}
/**
* Get the total number of elements possible given the dimensions.
* @returns {number}
*/
get_num_elements() {
- return wasm.datasetattributes_get_num_elements(this.ptr) >>> 0;
+ var ret = wasm.datasetattributes_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* Get the total number of elements possible in a block.
* @returns {number}
*/
get_block_num_elements() {
- return wasm.datasetattributes_get_block_num_elements(this.ptr) >>> 0;
+ var ret = wasm.datasetattributes_get_block_num_elements(this.ptr);
+ return ret >>> 0;
}
}
-
-__exports.DatasetAttributes = DatasetAttributes;
-
-function __wbg_n5httpfetch_new(ptr) { return addHeapObject(N5HTTPFetch.__wrap(ptr)); }
-
-__exports.__wbg_n5httpfetch_new = __wbg_n5httpfetch_new;
-
-function freeN5HTTPFetch(ptr) {
-
- wasm.__wbg_n5httpfetch_free(ptr);
-}
/**
*/
export class N5HTTPFetch {
@@ -687,167 +410,112 @@ export class N5HTTPFetch {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeN5HTTPFetch(ptr);
- }
+ wasm.__wbg_n5httpfetch_free(ptr);
+ }
/**
* @param {string} base_path
* @returns {any}
*/
static open(base_path) {
- const ptr0 = passStringToWasm(base_path);
- const len0 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_open(ptr0, len0));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(base_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_open(ptr0, len0);
+ return takeObject(ret);
}
/**
* @returns {any}
*/
get_version() {
- return takeObject(wasm.n5httpfetch_get_version(this.ptr));
+ var ret = wasm.n5httpfetch_get_version(this.ptr);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @returns {any}
*/
get_dataset_attributes(path_name) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_get_dataset_attributes(this.ptr, ptr0, len0));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_get_dataset_attributes(this.ptr, ptr0, len0);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @returns {any}
*/
exists(path_name) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_exists(this.ptr, ptr0, len0));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_exists(this.ptr, ptr0, len0);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @returns {any}
*/
dataset_exists(path_name) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_dataset_exists(this.ptr, ptr0, len0));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_dataset_exists(this.ptr, ptr0, len0);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @param {DatasetAttributes} data_attrs
- * @param {BigInt64Array} grid_position
+ * @param {BigUint64Array} grid_position
* @returns {any}
*/
read_block(path_name, data_attrs, grid_position) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- const ptr2 = passArray64ToWasm(grid_position);
- const len2 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_read_block(this.ptr, ptr0, len0, data_attrs.ptr, ptr2, len2));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ _assertClass(data_attrs, DatasetAttributes);
+ var ptr1 = passArray64ToWasm0(grid_position, wasm.__wbindgen_malloc);
+ var len1 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_read_block(this.ptr, ptr0, len0, data_attrs.ptr, ptr1, len1);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @returns {any}
*/
list_attributes(path_name) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_list_attributes(this.ptr, ptr0, len0));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_list_attributes(this.ptr, ptr0, len0);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @param {DatasetAttributes} data_attrs
- * @param {BigInt64Array} grid_position
+ * @param {BigUint64Array} grid_position
* @returns {any}
*/
block_etag(path_name, data_attrs, grid_position) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- const ptr2 = passArray64ToWasm(grid_position);
- const len2 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_block_etag(this.ptr, ptr0, len0, data_attrs.ptr, ptr2, len2));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ _assertClass(data_attrs, DatasetAttributes);
+ var ptr1 = passArray64ToWasm0(grid_position, wasm.__wbindgen_malloc);
+ var len1 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_block_etag(this.ptr, ptr0, len0, data_attrs.ptr, ptr1, len1);
+ return takeObject(ret);
}
/**
* @param {string} path_name
* @param {DatasetAttributes} data_attrs
- * @param {BigInt64Array} grid_position
+ * @param {BigUint64Array} grid_position
* @returns {any}
*/
read_block_with_etag(path_name, data_attrs, grid_position) {
- const ptr0 = passStringToWasm(path_name);
- const len0 = WASM_VECTOR_LEN;
- const ptr2 = passArray64ToWasm(grid_position);
- const len2 = WASM_VECTOR_LEN;
- try {
- return takeObject(wasm.n5httpfetch_read_block_with_etag(this.ptr, ptr0, len0, data_attrs.ptr, ptr2, len2));
-
- } finally {
- wasm.__wbindgen_free(ptr0, len0 * 1);
-
- }
-
+ var ptr0 = passStringToWasm0(path_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ _assertClass(data_attrs, DatasetAttributes);
+ var ptr1 = passArray64ToWasm0(grid_position, wasm.__wbindgen_malloc);
+ var len1 = WASM_VECTOR_LEN;
+ var ret = wasm.n5httpfetch_read_block_with_etag(this.ptr, ptr0, len0, data_attrs.ptr, ptr1, len1);
+ return takeObject(ret);
}
}
-
-__exports.N5HTTPFetch = N5HTTPFetch;
-
-function __wbg_vecdatablockfloat32_new(ptr) { return addHeapObject(VecDataBlockFLOAT32.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockfloat32_new = __wbg_vecdatablockfloat32_new;
-
-function freeVecDataBlockFLOAT32(ptr) {
-
- wasm.__wbg_vecdatablockfloat32_free(ptr);
-}
/**
*/
export class VecDataBlockFLOAT32 {
@@ -862,104 +530,77 @@ export class VecDataBlockFLOAT32 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockFLOAT32(ptr);
- }
+ wasm.__wbg_vecdatablockfloat32_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat32_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat32_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Float32Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat32_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayF32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayF32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {Float32Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat32_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayF32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.vecdatablockfloat32_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayF32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat32_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockFLOAT32 = VecDataBlockFLOAT32;
-
-function __wbg_vecdatablockfloat64_new(ptr) { return addHeapObject(VecDataBlockFLOAT64.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockfloat64_new = __wbg_vecdatablockfloat64_new;
-
-function freeVecDataBlockFLOAT64(ptr) {
-
- wasm.__wbg_vecdatablockfloat64_free(ptr);
-}
/**
*/
export class VecDataBlockFLOAT64 {
@@ -974,104 +615,77 @@ export class VecDataBlockFLOAT64 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockFLOAT64(ptr);
- }
+ wasm.__wbg_vecdatablockfloat64_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat64_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat64_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Float64Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat64_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayF64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.vecdatablockfloat64_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayF64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Float64Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat64_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayF64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.vecdatablockfloat64_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayF64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockfloat64_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockfloat64_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockFLOAT64 = VecDataBlockFLOAT64;
-
-function __wbg_vecdatablockint16_new(ptr) { return addHeapObject(VecDataBlockINT16.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockint16_new = __wbg_vecdatablockint16_new;
-
-function freeVecDataBlockINT16(ptr) {
-
- wasm.__wbg_vecdatablockint16_free(ptr);
-}
/**
*/
export class VecDataBlockINT16 {
@@ -1086,104 +700,77 @@ export class VecDataBlockINT16 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockINT16(ptr);
- }
+ wasm.__wbg_vecdatablockint16_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint16_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint16_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Int16Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint16_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI16FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 2);
- return realRet;
-
+ wasm.vecdatablockint16_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI16FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 2);
+ return v0;
}
/**
* @returns {Int16Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint16_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI16FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 2);
- return realRet;
-
+ wasm.vecdatablockint16_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI16FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 2);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockint16_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint16_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockINT16 = VecDataBlockINT16;
-
-function __wbg_vecdatablockint32_new(ptr) { return addHeapObject(VecDataBlockINT32.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockint32_new = __wbg_vecdatablockint32_new;
-
-function freeVecDataBlockINT32(ptr) {
-
- wasm.__wbg_vecdatablockint32_free(ptr);
-}
/**
*/
export class VecDataBlockINT32 {
@@ -1198,104 +785,77 @@ export class VecDataBlockINT32 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockINT32(ptr);
- }
+ wasm.__wbg_vecdatablockint32_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint32_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint32_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Int32Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint32_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.vecdatablockint32_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {Int32Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint32_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.vecdatablockint32_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockint32_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint32_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockINT32 = VecDataBlockINT32;
-
-function __wbg_vecdatablockint64_new(ptr) { return addHeapObject(VecDataBlockINT64.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockint64_new = __wbg_vecdatablockint64_new;
-
-function freeVecDataBlockINT64(ptr) {
-
- wasm.__wbg_vecdatablockint64_free(ptr);
-}
/**
*/
export class VecDataBlockINT64 {
@@ -1310,104 +870,77 @@ export class VecDataBlockINT64 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockINT64(ptr);
- }
+ wasm.__wbg_vecdatablockint64_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint64_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint64_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {BigInt64Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint64_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.vecdatablockfloat64_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {BigInt64Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint64_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.vecdatablockfloat64_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockint64_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint64_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockINT64 = VecDataBlockINT64;
-
-function __wbg_vecdatablockint8_new(ptr) { return addHeapObject(VecDataBlockINT8.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockint8_new = __wbg_vecdatablockint8_new;
-
-function freeVecDataBlockINT8(ptr) {
-
- wasm.__wbg_vecdatablockint8_free(ptr);
-}
/**
*/
export class VecDataBlockINT8 {
@@ -1422,104 +955,77 @@ export class VecDataBlockINT8 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockINT8(ptr);
- }
+ wasm.__wbg_vecdatablockint8_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint8_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint8_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Int8Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint8_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI8FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockint8_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI8FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ return v0;
}
/**
* @returns {Int8Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint8_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI8FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockint8_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayI8FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockint8_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockint8_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockINT8 = VecDataBlockINT8;
-
-function __wbg_vecdatablockuint16_new(ptr) { return addHeapObject(VecDataBlockUINT16.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockuint16_new = __wbg_vecdatablockuint16_new;
-
-function freeVecDataBlockUINT16(ptr) {
-
- wasm.__wbg_vecdatablockuint16_free(ptr);
-}
/**
*/
export class VecDataBlockUINT16 {
@@ -1534,104 +1040,77 @@ export class VecDataBlockUINT16 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockUINT16(ptr);
- }
+ wasm.__wbg_vecdatablockuint16_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint16_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint16_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Uint16Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint16_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU16FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 2);
- return realRet;
-
+ wasm.vecdatablockint16_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU16FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 2);
+ return v0;
}
/**
* @returns {Uint16Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint16_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU16FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 2);
- return realRet;
-
+ wasm.vecdatablockint16_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU16FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 2);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockuint16_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint16_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockUINT16 = VecDataBlockUINT16;
-
-function __wbg_vecdatablockuint32_new(ptr) { return addHeapObject(VecDataBlockUINT32.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockuint32_new = __wbg_vecdatablockuint32_new;
-
-function freeVecDataBlockUINT32(ptr) {
-
- wasm.__wbg_vecdatablockuint32_free(ptr);
-}
/**
*/
export class VecDataBlockUINT32 {
@@ -1646,104 +1125,77 @@ export class VecDataBlockUINT32 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockUINT32(ptr);
- }
+ wasm.__wbg_vecdatablockuint32_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint32_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint32_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Uint32Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint32_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.vecdatablockuint32_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {Uint32Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint32_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.vecdatablockint32_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockuint32_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint32_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockUINT32 = VecDataBlockUINT32;
-
-function __wbg_vecdatablockuint64_new(ptr) { return addHeapObject(VecDataBlockUINT64.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockuint64_new = __wbg_vecdatablockuint64_new;
-
-function freeVecDataBlockUINT64(ptr) {
-
- wasm.__wbg_vecdatablockuint64_free(ptr);
-}
/**
*/
export class VecDataBlockUINT64 {
@@ -1758,104 +1210,77 @@ export class VecDataBlockUINT64 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockUINT64(ptr);
- }
+ wasm.__wbg_vecdatablockuint64_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint64_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint64_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {BigUint64Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint64_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.vecdatablockuint64_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {BigUint64Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint64_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.vecdatablockfloat64_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockuint64_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint64_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockUINT64 = VecDataBlockUINT64;
-
-function __wbg_vecdatablockuint8_new(ptr) { return addHeapObject(VecDataBlockUINT8.__wrap(ptr)); }
-
-__exports.__wbg_vecdatablockuint8_new = __wbg_vecdatablockuint8_new;
-
-function freeVecDataBlockUINT8(ptr) {
-
- wasm.__wbg_vecdatablockuint8_free(ptr);
-}
/**
*/
export class VecDataBlockUINT8 {
@@ -1870,104 +1295,77 @@ export class VecDataBlockUINT8 {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVecDataBlockUINT8(ptr);
- }
+ wasm.__wbg_vecdatablockuint8_free(ptr);
+ }
/**
- * @returns {Int32Array}
+ * @returns {Uint32Array}
*/
get_size() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint8_get_size(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI32FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 4);
- return realRet;
-
+ wasm.datasetattributes_get_block_size(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU32FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 4);
+ return v0;
}
/**
- * @returns {BigInt64Array}
+ * @returns {BigUint64Array}
*/
get_grid_position() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint8_get_grid_position(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayI64FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 8);
- return realRet;
-
+ wasm.datasetattributes_get_dimensions(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU64FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 8);
+ return v0;
}
/**
* @returns {Uint8Array}
*/
get_data() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint8_get_data(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU8FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockuint8_get_data(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU8FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ return v0;
}
/**
* @returns {Uint8Array}
*/
into_data() {
- const ptr = this.ptr;
+ var ptr = this.ptr;
this.ptr = 0;
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint8_into_data(retptr, ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getArrayU8FromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockint8_into_data(8, ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ var v0 = getArrayU8FromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ return v0;
}
/**
* @returns {number}
*/
get_num_elements() {
- return wasm.vecdatablockuint8_get_num_elements(this.ptr);
+ var ret = wasm.vecdatablockfloat32_get_num_elements(this.ptr);
+ return ret >>> 0;
}
/**
* @returns {string}
*/
get_etag() {
- const retptr = globalArgumentPtr();
- wasm.vecdatablockuint8_get_etag(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
- if (rustptr === 0) return;
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ wasm.vecdatablockfloat32_get_etag(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ let v0;
+ if (r0 !== 0) {
+ v0 = getStringFromWasm0(r0, r1).slice();
+ wasm.__wbindgen_free(r0, r1 * 1);
+ }
+ return v0;
}
}
-
-__exports.VecDataBlockUINT8 = VecDataBlockUINT8;
-
-function __wbg_version_new(ptr) { return addHeapObject(Version.__wrap(ptr)); }
-
-__exports.__wbg_version_new = __wbg_version_new;
-
-function freeVersion(ptr) {
-
- wasm.__wbg_version_free(ptr);
-}
/**
*/
export class Version {
@@ -1982,50 +1380,340 @@ export class Version {
free() {
const ptr = this.ptr;
this.ptr = 0;
- freeVersion(ptr);
- }
+ wasm.__wbg_version_free(ptr);
+ }
/**
* @returns {string}
*/
to_string() {
- const retptr = globalArgumentPtr();
- wasm.version_to_string(retptr, this.ptr);
- const mem = getUint32Memory();
- const rustptr = mem[retptr / 4];
- const rustlen = mem[retptr / 4 + 1];
-
- const realRet = getStringFromWasm(rustptr, rustlen).slice();
- wasm.__wbindgen_free(rustptr, rustlen * 1);
- return realRet;
-
+ try {
+ wasm.version_to_string(8, this.ptr);
+ var r0 = getInt32Memory0()[8 / 4 + 0];
+ var r1 = getInt32Memory0()[8 / 4 + 1];
+ return getStringFromWasm0(r0, r1);
+ } finally {
+ wasm.__wbindgen_free(r0, r1);
+ }
}
}
-__exports.Version = Version;
-
-function __wbindgen_object_clone_ref(idx) {
- return addHeapObject(getObject(idx));
-}
-
-__exports.__wbindgen_object_clone_ref = __wbindgen_object_clone_ref;
-
-function __wbindgen_object_drop_ref(i) { dropObject(i); }
-
-__exports.__wbindgen_object_drop_ref = __wbindgen_object_drop_ref;
-
function init(module) {
+ if (typeof module === 'undefined') {
+ module = import.meta.url.replace(/\.js$/, '_bg.wasm');
+ }
let result;
- const imports = { './n5_wasm': __exports };
- if (module instanceof URL || typeof module === 'string' || module instanceof Request) {
+ const imports = {};
+ imports.wbg = {};
+ imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
+ takeObject(arg0);
+ };
+ imports.wbg.__wbg_length_60a719ff58c1bd42 = function(arg0) {
+ var ret = getObject(arg0).length;
+ return ret;
+ };
+ imports.wbg.__wbindgen_memory = function() {
+ var ret = wasm.memory;
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_buffer_89a8560ab6a3d9c6 = function(arg0) {
+ var ret = getObject(arg0).buffer;
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_new_bd2e1d010adb8a1a = function(arg0) {
+ var ret = new Uint8Array(getObject(arg0));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_set_05a3afda446930ee = function(arg0, arg1, arg2) {
+ getObject(arg0).set(getObject(arg1), arg2 >>> 0);
+ };
+ imports.wbg.__widl_instanceof_Response = function(arg0) {
+ var ret = getObject(arg0) instanceof Response;
+ return ret;
+ };
+ imports.wbg.__widl_f_ok_Response = function(arg0) {
+ var ret = getObject(arg0).ok;
+ return ret;
+ };
+ imports.wbg.__widl_f_headers_Response = function(arg0) {
+ var ret = getObject(arg0).headers;
+ return addHeapObject(ret);
+ };
+ imports.wbg.__widl_f_get_Headers = function(arg0, arg1, arg2, arg3) {
+ try {
+ var ret = getObject(arg1).get(getStringFromWasm0(arg2, arg3));
+ var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__widl_f_array_buffer_Response = function(arg0) {
+ try {
+ var ret = getObject(arg0).arrayBuffer();
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbg_instanceof_ArrayBuffer_3df027e750cad6cd = function(arg0) {
+ var ret = getObject(arg0) instanceof ArrayBuffer;
+ return ret;
+ };
+ imports.wbg.__wbg_vecdatablockfloat32_new = function(arg0) {
+ var ret = VecDataBlockFLOAT32.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_new_b43fc449db38d3bd = function(arg0, arg1) {
+ var ret = new Error(getStringFromWasm0(arg0, arg1));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockuint32_new = function(arg0) {
+ var ret = VecDataBlockUINT32.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockint16_new = function(arg0) {
+ var ret = VecDataBlockINT16.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_datasetattributes_new = function(arg0) {
+ var ret = DatasetAttributes.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockint32_new = function(arg0) {
+ var ret = VecDataBlockINT32.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
+ var ret = getStringFromWasm0(arg0, arg1);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockuint16_new = function(arg0) {
+ var ret = VecDataBlockUINT16.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbindgen_json_serialize = function(arg0, arg1) {
+ const obj = getObject(arg1);
+ var ret = JSON.stringify(obj === undefined ? null : obj);
+ var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
+ };
+ imports.wbg.__wbg_vecdatablockint8_new = function(arg0) {
+ var ret = VecDataBlockINT8.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockint64_new = function(arg0) {
+ var ret = VecDataBlockINT64.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockuint64_new = function(arg0) {
+ var ret = VecDataBlockUINT64.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_n5httpfetch_new = function(arg0) {
+ var ret = N5HTTPFetch.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockuint8_new = function(arg0) {
+ var ret = VecDataBlockUINT8.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_vecdatablockfloat64_new = function(arg0) {
+ var ret = VecDataBlockFLOAT64.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_version_new = function(arg0) {
+ var ret = Version.__wrap(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbindgen_json_parse = function(arg0, arg1) {
+ var ret = JSON.parse(getStringFromWasm0(arg0, arg1));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_new_8b3eec454ca71e88 = function(arg0, arg1) {
+ try {
+ var state0 = {a: arg0, b: arg1};
+ var cb0 = (arg0, arg1) => {
+ const a = state0.a;
+ state0.a = 0;
+ try {
+ return __wbg_adapter_115(a, state0.b, arg0, arg1);
+ } finally {
+ state0.a = a;
+ }
+ };
+ var ret = new Promise(cb0);
+ return addHeapObject(ret);
+ } finally {
+ state0.a = state0.b = 0;
+ }
+ };
+ imports.wbg.__wbg_new_66e20d51c3e33b63 = function() {
+ var ret = new Object();
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_set_c3a2ba27703a6186 = function(arg0, arg1, arg2) {
+ try {
+ var ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));
+ return ret;
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__widl_f_new_with_str_and_init_Request = function(arg0, arg1, arg2) {
+ try {
+ var ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__widl_f_fetch_with_request_Window = function(arg0, arg1) {
+ var ret = getObject(arg0).fetch(getObject(arg1));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__widl_f_json_Response = function(arg0) {
+ try {
+ var ret = getObject(arg0).json();
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
+ var ret = debugString(getObject(arg1));
+ var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
+ };
+ imports.wbg.__wbindgen_throw = function(arg0, arg1) {
+ throw new Error(getStringFromWasm0(arg0, arg1));
+ };
+ imports.wbg.__wbg_call_6c4ea719458624eb = function(arg0, arg1, arg2) {
+ try {
+ var ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbindgen_cb_drop = function(arg0) {
+ const obj = takeObject(arg0).original;
+ if (obj.cnt-- == 1) {
+ obj.a = 0;
+ return true;
+ }
+ var ret = false;
+ return ret;
+ };
+ imports.wbg.__wbg_then_5a9068d7b674caf9 = function(arg0, arg1, arg2) {
+ var ret = getObject(arg0).then(getObject(arg1), getObject(arg2));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_resolve_4e9c46f7e8321315 = function(arg0) {
+ var ret = Promise.resolve(getObject(arg0));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_then_79de0b6809569306 = function(arg0, arg1) {
+ var ret = getObject(arg0).then(getObject(arg1));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_globalThis_1c2aa6db3ecb073e = function() {
+ try {
+ var ret = globalThis.globalThis;
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbg_self_e5cdcdef79894248 = function() {
+ try {
+ var ret = self.self;
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbg_window_44ec8ac43884a4cf = function() {
+ try {
+ var ret = window.window;
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbg_global_c9abcb94a14733fe = function() {
+ try {
+ var ret = global.global;
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbindgen_is_undefined = function(arg0) {
+ var ret = getObject(arg0) === undefined;
+ return ret;
+ };
+ imports.wbg.__wbg_newnoargs_a9cd98b36c38f53e = function(arg0, arg1) {
+ var ret = new Function(getStringFromWasm0(arg0, arg1));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_call_222be890f6f564bb = function(arg0, arg1) {
+ try {
+ var ret = getObject(arg0).call(getObject(arg1));
+ return addHeapObject(ret);
+ } catch (e) {
+ handleError(e)
+ }
+ };
+ imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
+ var ret = getObject(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__widl_instanceof_Window = function(arg0) {
+ var ret = getObject(arg0) instanceof Window;
+ return ret;
+ };
+ imports.wbg.__wbindgen_closure_wrapper624 = function(arg0, arg1, arg2) {
+
+ const state = { a: arg0, b: arg1, cnt: 1 };
+ const real = (arg0) => {
+ state.cnt++;
+ const a = state.a;
+ state.a = 0;
+ try {
+ return __wbg_adapter_22(a, state.b, arg0);
+ } finally {
+ if (--state.cnt === 0) wasm.__wbindgen_export_2.get(48)(a, state.b);
+ else state.a = a;
+ }
+ }
+ ;
+ real.original = state;
+ var ret = real;
+ return addHeapObject(ret);
+ };
+
+ if ((typeof URL === 'function' && module instanceof URL) || typeof module === 'string' || (typeof Request === 'function' && module instanceof Request)) {
const response = fetch(module);
if (typeof WebAssembly.instantiateStreaming === 'function') {
result = WebAssembly.instantiateStreaming(response, imports)
.catch(e => {
- console.warn("`WebAssembly.instantiateStreaming` failed. Assuming this is because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
return response
- .then(r => r.arrayBuffer())
+ .then(r => {
+ if (r.headers.get('Content-Type') != 'application/wasm') {
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
+ return r.arrayBuffer();
+ } else {
+ throw e;
+ }
+ })
.then(bytes => WebAssembly.instantiate(bytes, imports));
});
} else {
diff --git a/django/applications/catmaid/static/libs/n5-wasm/n5_wasm_bg.wasm b/django/applications/catmaid/static/libs/n5-wasm/n5_wasm_bg.wasm
index 1f2c2c376ce2b81926f3621591c9ca2e1e5d2110..2071238be8622b533dbd1bea8f4d2dc7c92f3ff1 100644
GIT binary patch
literal 426847
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