@@ -12,29 +12,41 @@ const RustSliceT = { "struct": ["pointer", "usize"] } as const;
1212
1313function loadDylib ( ) {
1414 let libSuffix = "" ;
15-
15+
1616 switch ( Deno . build . os ) {
17- case "windows" :
18- libSuffix = "dll" ;
19- break ;
20- case "darwin" :
21- libSuffix = "dylib" ;
22- break ;
23- default :
24- libSuffix = "so" ;
25- break ;
17+ case "windows" :
18+ libSuffix = "dll" ;
19+ break ;
20+ case "darwin" :
21+ libSuffix = "dylib" ;
22+ break ;
23+ default :
24+ libSuffix = "so" ;
25+ break ;
2626 }
2727
2828 const libName = `libdivvun_runtime.${ libSuffix } ` ;
2929 const fullLibPath = libPath ? path . join ( libPath , libName ) : libName ;
3030
3131 dylib = Deno . dlopen ( fullLibPath , {
32- DRT_Bundle_fromBundle : { parameters : [ RustSliceT , "function" ] , result : "pointer" } ,
32+ DRT_Bundle_fromBundle : {
33+ parameters : [ RustSliceT , "function" ] ,
34+ result : "pointer" ,
35+ } ,
3336 DRT_Bundle_drop : { parameters : [ "pointer" ] , result : "void" } ,
34- DRT_Bundle_fromPath : { parameters : [ RustSliceT , "function" ] , result : "pointer" } ,
35- DRT_Bundle_create : { parameters : [ "pointer" , RustSliceT , "function" ] , result : "pointer" } ,
37+ DRT_Bundle_fromPath : {
38+ parameters : [ RustSliceT , "function" ] ,
39+ result : "pointer" ,
40+ } ,
41+ DRT_Bundle_create : {
42+ parameters : [ "pointer" , RustSliceT , "function" ] ,
43+ result : "pointer" ,
44+ } ,
3645 DRT_PipelineHandle_drop : { parameters : [ "pointer" ] , result : "void" } ,
37- DRT_PipelineHandle_forward : { parameters : [ "pointer" , RustSliceT , "function" ] , result : RustSliceT } ,
46+ DRT_PipelineHandle_forward : {
47+ parameters : [ "pointer" , RustSliceT , "function" ] ,
48+ result : RustSliceT ,
49+ } ,
3850 DRT_Vec_drop : { parameters : [ RustSliceT ] , result : "void" } ,
3951 } ) ;
4052}
@@ -44,23 +56,25 @@ const encoder = new TextEncoder();
4456const errCallback = new Deno . UnsafeCallback (
4557 { parameters : [ "pointer" , "usize" ] , result : "void" } as const ,
4658 ( ptr , len ) => {
47- if ( ptr == null ) {
48- throw new Error ( "Unknown error" ) ;
49- }
50-
51- const message = new TextDecoder ( ) . decode ( new Uint8Array ( Deno . UnsafePointerView . getArrayBuffer ( ptr , Number ( len ) ) ) ) ;
52- throw new Error ( message ) ;
59+ if ( ptr == null ) {
60+ throw new Error ( "Unknown error" ) ;
61+ }
62+
63+ const message = new TextDecoder ( ) . decode (
64+ new Uint8Array ( Deno . UnsafePointerView . getArrayBuffer ( ptr , Number ( len ) ) ) ,
65+ ) ;
66+ throw new Error ( message ) ;
5367 } ,
5468) ;
5569
5670function makeRustString ( str : string ) : ArrayBuffer {
5771 const encoded = encoder . encode ( str ) ;
5872 const ptr = Deno . UnsafePointer . of < Uint8Array > ( encoded ) ;
59-
73+
6074 return new BigUint64Array ( [
6175 Deno . UnsafePointer . value ( ptr ) ,
6276 BigInt ( encoded . length ) ,
63- ] ) . buffer
77+ ] ) . buffer ;
6478}
6579
6680export class Bundle {
@@ -79,7 +93,7 @@ export class Bundle {
7993 errCallback . pointer ,
8094 ) as Deno . PointerValue < Bundle > ;
8195
82- return new Bundle ( bundleRawPtr )
96+ return new Bundle ( bundleRawPtr ) ;
8397 } catch ( e ) {
8498 throw e ;
8599 }
@@ -98,7 +112,7 @@ export class Bundle {
98112 errCallback . pointer ,
99113 ) as Deno . PointerValue < Bundle > ;
100114
101- return new Bundle ( bundleRawPtr )
115+ return new Bundle ( bundleRawPtr ) ;
102116 } catch ( e ) {
103117 throw e ;
104118 }
@@ -124,13 +138,14 @@ export class Bundle {
124138 const rsConfig = makeRustString ( configStr ) ;
125139
126140 try {
127- const pipeRawPtr : Deno . PointerValue < PipelineHandle > = dylib . symbols . DRT_Bundle_create (
128- this . #ptr,
129- rsConfig ,
130- errCallback . pointer ,
131- ) as Deno . PointerValue < PipelineHandle > ;
132-
133- return new PipelineHandle ( pipeRawPtr )
141+ const pipeRawPtr : Deno . PointerValue < PipelineHandle > = dylib . symbols
142+ . DRT_Bundle_create (
143+ this . #ptr,
144+ rsConfig ,
145+ errCallback . pointer ,
146+ ) as Deno . PointerValue < PipelineHandle > ;
147+
148+ return new PipelineHandle ( pipeRawPtr ) ;
134149 } catch ( e ) {
135150 throw e ;
136151 }
@@ -153,7 +168,7 @@ class PipelineResponse {
153168
154169 const ptrBuf = Deno . UnsafePointerView . getArrayBuffer ( ptr , 8 ) ;
155170 const lenBuf = Deno . UnsafePointerView . getArrayBuffer ( ptr , 8 , 8 ) ;
156-
171+
157172 this . #ptr = Deno . UnsafePointer . create ( new BigUint64Array ( ptrBuf ) [ 0 ] ) ;
158173 this . #len = Number ( new BigUint64Array ( lenBuf ) [ 0 ] ) ;
159174 }
@@ -234,4 +249,4 @@ export class PipelineHandle {
234249 throw e ;
235250 }
236251 }
237- }
252+ }
0 commit comments