react-native-ariel 0.1.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/Ariel.podspec +44 -0
  2. package/LICENSE +20 -0
  3. package/README.md +349 -0
  4. package/android/CMakeLists.txt +79 -0
  5. package/android/build.gradle +144 -0
  6. package/android/cpp-adapter.cpp +43 -0
  7. package/android/generated/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeArielSpec.java +41 -0
  8. package/android/generated/android/app/build/generated/source/codegen/jni/ArielSpec-generated.cpp +38 -0
  9. package/android/generated/android/app/build/generated/source/codegen/jni/ArielSpec.h +31 -0
  10. package/android/generated/android/app/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  11. package/android/generated/android/app/build/generated/source/codegen/jni/react/renderer/components/ArielSpec/ArielSpecJSI.h +45 -0
  12. package/android/src/main/AndroidManifest.xml +5 -0
  13. package/android/src/main/java/com/ariel/ArielModule.kt +43 -0
  14. package/android/src/main/java/com/ariel/ArielPackage.kt +34 -0
  15. package/android/src/main/jniLibs/arm64-v8a/libmermaid_wrapper.a +0 -0
  16. package/android/src/main/jniLibs/armeabi-v7a/libmermaid_wrapper.a +0 -0
  17. package/android/src/main/jniLibs/x86/libmermaid_wrapper.a +0 -0
  18. package/android/src/main/jniLibs/x86_64/libmermaid_wrapper.a +0 -0
  19. package/cpp/mermaid_wrapper.cpp +2368 -0
  20. package/cpp/mermaid_wrapper.hpp +77 -0
  21. package/cpp/react-native-ariel.cpp +16 -0
  22. package/cpp/react-native-ariel.h +15 -0
  23. package/ios/Ariel.h +16 -0
  24. package/ios/Ariel.mm +66 -0
  25. package/ios/generated/build/generated/ios/ReactCodegen/ArielSpec/ArielSpec-generated.mm +46 -0
  26. package/ios/generated/build/generated/ios/ReactCodegen/ArielSpec/ArielSpec.h +63 -0
  27. package/ios/generated/build/generated/ios/ReactCodegen/ArielSpecJSI.h +45 -0
  28. package/lib/module/NativeAriel.js +7 -0
  29. package/lib/module/NativeAriel.js.map +1 -0
  30. package/lib/module/generated/rn/mermaid_wrapper-ffi.js +47 -0
  31. package/lib/module/generated/rn/mermaid_wrapper-ffi.js.map +1 -0
  32. package/lib/module/generated/rn/mermaid_wrapper.js +487 -0
  33. package/lib/module/generated/rn/mermaid_wrapper.js.map +1 -0
  34. package/lib/module/generated/web/mermaid_wrapper.js +532 -0
  35. package/lib/module/generated/web/mermaid_wrapper.js.map +1 -0
  36. package/lib/module/index.js +43 -0
  37. package/lib/module/index.js.map +1 -0
  38. package/lib/module/index.web.js +28 -0
  39. package/lib/module/index.web.js.map +2 -0
  40. package/lib/module/package.json +1 -0
  41. package/lib/typescript/package.json +1 -0
  42. package/lib/typescript/src/NativeAriel.d.ts +8 -0
  43. package/lib/typescript/src/NativeAriel.d.ts.map +1 -0
  44. package/lib/typescript/src/generated/rn/mermaid_wrapper-ffi.d.ts +102 -0
  45. package/lib/typescript/src/generated/rn/mermaid_wrapper-ffi.d.ts.map +1 -0
  46. package/lib/typescript/src/generated/rn/mermaid_wrapper.d.ts +291 -0
  47. package/lib/typescript/src/generated/rn/mermaid_wrapper.d.ts.map +1 -0
  48. package/lib/typescript/src/generated/web/mermaid_wrapper.d.ts +291 -0
  49. package/lib/typescript/src/generated/web/mermaid_wrapper.d.ts.map +1 -0
  50. package/lib/typescript/src/index.d.ts +8 -0
  51. package/lib/typescript/src/index.d.ts.map +1 -0
  52. package/lib/typescript/src/index.web.d.ts +8 -0
  53. package/lib/typescript/src/index.web.d.ts.map +1 -0
  54. package/package.json +146 -0
  55. package/react-native.config.js +15 -0
  56. package/src/NativeAriel.ts +10 -0
  57. package/src/generated/rn/mermaid_wrapper-ffi.ts +161 -0
  58. package/src/generated/rn/mermaid_wrapper.ts +765 -0
  59. package/src/generated/web/mermaid_wrapper.ts +771 -0
  60. package/src/index.tsx +41 -0
  61. package/src/index.web.ts +26 -0
  62. package/src/index.web.tsx +17 -0
@@ -0,0 +1,765 @@
1
+ // This file was autogenerated by some hot garbage in the `uniffi-bindgen-react-native` crate.
2
+ // Trust me, you don't want to mess with it!
3
+
4
+ /* tslint:disable */
5
+ /* eslint-disable */
6
+ // @ts-nocheck
7
+ import nativeModule, {
8
+ type UniffiRustFutureContinuationCallback,
9
+ type UniffiForeignFutureDroppedCallback,
10
+ type UniffiForeignFutureDroppedCallbackStruct,
11
+ type UniffiForeignFutureResultU8,
12
+ type UniffiForeignFutureCompleteU8,
13
+ type UniffiForeignFutureResultI8,
14
+ type UniffiForeignFutureCompleteI8,
15
+ type UniffiForeignFutureResultU16,
16
+ type UniffiForeignFutureCompleteU16,
17
+ type UniffiForeignFutureResultI16,
18
+ type UniffiForeignFutureCompleteI16,
19
+ type UniffiForeignFutureResultU32,
20
+ type UniffiForeignFutureCompleteU32,
21
+ type UniffiForeignFutureResultI32,
22
+ type UniffiForeignFutureCompleteI32,
23
+ type UniffiForeignFutureResultU64,
24
+ type UniffiForeignFutureCompleteU64,
25
+ type UniffiForeignFutureResultI64,
26
+ type UniffiForeignFutureCompleteI64,
27
+ type UniffiForeignFutureResultF32,
28
+ type UniffiForeignFutureCompleteF32,
29
+ type UniffiForeignFutureResultF64,
30
+ type UniffiForeignFutureCompleteF64,
31
+ type UniffiForeignFutureResultRustBuffer,
32
+ type UniffiForeignFutureCompleteRustBuffer,
33
+ type UniffiForeignFutureResultVoid,
34
+ type UniffiForeignFutureCompleteVoid,
35
+ } from "./mermaid_wrapper-ffi";
36
+ import {
37
+ type FfiConverter,
38
+ type UniffiByteArray,
39
+ type UniffiGcObject,
40
+ type UniffiHandle,
41
+ type UniffiObjectFactory,
42
+ AbstractFfiConverterByteArray,
43
+ FfiConverterBool,
44
+ FfiConverterFloat32,
45
+ FfiConverterFloat64,
46
+ FfiConverterInt32,
47
+ FfiConverterObject,
48
+ FfiConverterOptional,
49
+ FfiConverterUInt64,
50
+ RustBuffer,
51
+ UniffiAbstractObject,
52
+ UniffiError,
53
+ UniffiInternalError,
54
+ UniffiRustCaller,
55
+ destructorGuardSymbol,
56
+ pointerLiteralSymbol,
57
+ uniffiCreateFfiConverterString,
58
+ uniffiCreateRecord,
59
+ uniffiTypeNameSymbol,
60
+ variantOrdinalSymbol } from "uniffi-bindgen-react-native";
61
+
62
+ // Get converters from the other files, if any.
63
+ const uniffiCaller = new UniffiRustCaller(() => ({ code: 0 }));
64
+
65
+ const uniffiIsDebug =
66
+ // @ts-ignore -- The process global might not be defined
67
+ typeof process !== "object" ||
68
+ // @ts-ignore -- The process global might not be defined
69
+ process?.env?.NODE_ENV !== "production" ||
70
+ false;
71
+ // Public interface members begin here.
72
+
73
+ export function computeDiagramLayout(parsed: ArielParsedDiagramLike, theme: ArielThemeLike, config: ArielLayoutConfig): ArielLayoutLike {
74
+ return FfiConverterTypeArielLayout.lift(uniffiCaller.rustCall(
75
+ /*caller:*/ (callStatus) => {
76
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_compute_diagram_layout(
77
+ FfiConverterTypeArielParsedDiagram.lower(parsed),
78
+ FfiConverterTypeArielTheme.lower(theme),
79
+ FfiConverterTypeArielLayoutConfig.lower(config),
80
+ callStatus);
81
+ },
82
+ /*liftString:*/ FfiConverterString.lift,
83
+ ));
84
+ }
85
+ export function parseDiagram(input: string): ArielParsedDiagramLike /*throws*/ {
86
+ return FfiConverterTypeArielParsedDiagram.lift(
87
+ uniffiCaller.rustCallWithError(
88
+ /*liftError:*/ FfiConverterTypeMermaidError.lift.bind(FfiConverterTypeMermaidError),
89
+ /*caller:*/ (callStatus) => {
90
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_parse_diagram(
91
+ FfiConverterString.lower(input),
92
+ callStatus);
93
+ },
94
+ /*liftString:*/ FfiConverterString.lift,
95
+ ));
96
+ }
97
+ export function renderMermaid(input: string): string /*throws*/ {
98
+ return FfiConverterString.lift(
99
+ uniffiCaller.rustCallWithError(
100
+ /*liftError:*/ FfiConverterTypeMermaidError.lift.bind(FfiConverterTypeMermaidError),
101
+ /*caller:*/ (callStatus) => {
102
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_render_mermaid(
103
+ FfiConverterString.lower(input),
104
+ callStatus);
105
+ },
106
+ /*liftString:*/ FfiConverterString.lift,
107
+ ));
108
+ }
109
+ export function renderMermaidWithOptions(input: string, theme: ArielThemeLike, config: ArielLayoutConfig): string /*throws*/ {
110
+ return FfiConverterString.lift(
111
+ uniffiCaller.rustCallWithError(
112
+ /*liftError:*/ FfiConverterTypeMermaidError.lift.bind(FfiConverterTypeMermaidError),
113
+ /*caller:*/ (callStatus) => {
114
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_render_mermaid_with_options(
115
+ FfiConverterString.lower(input),
116
+ FfiConverterTypeArielTheme.lower(theme),
117
+ FfiConverterTypeArielLayoutConfig.lower(config),
118
+ callStatus);
119
+ },
120
+ /*liftString:*/ FfiConverterString.lift,
121
+ ));
122
+ }
123
+ export function renderMermaidWithTiming(input: string, theme: ArielThemeLike, config: ArielLayoutConfig): ArielRenderResult /*throws*/ {
124
+ return FfiConverterTypeArielRenderResult.lift(
125
+ uniffiCaller.rustCallWithError(
126
+ /*liftError:*/ FfiConverterTypeMermaidError.lift.bind(FfiConverterTypeMermaidError),
127
+ /*caller:*/ (callStatus) => {
128
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_render_mermaid_with_timing(
129
+ FfiConverterString.lower(input),
130
+ FfiConverterTypeArielTheme.lower(theme),
131
+ FfiConverterTypeArielLayoutConfig.lower(config),
132
+ callStatus);
133
+ },
134
+ /*liftString:*/ FfiConverterString.lift,
135
+ ));
136
+ }
137
+ export function renderSvgFromLayout(layout: ArielLayoutLike, theme: ArielThemeLike, config: ArielLayoutConfig): string {
138
+ return FfiConverterString.lift(uniffiCaller.rustCall(
139
+ /*caller:*/ (callStatus) => {
140
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_render_svg_from_layout(
141
+ FfiConverterTypeArielLayout.lower(layout),
142
+ FfiConverterTypeArielTheme.lower(theme),
143
+ FfiConverterTypeArielLayoutConfig.lower(config),
144
+ callStatus);
145
+ },
146
+ /*liftString:*/ FfiConverterString.lift,
147
+ ));
148
+ }
149
+ export function setTimingLogs(enabled: boolean): void {uniffiCaller.rustCall(
150
+ /*caller:*/ (callStatus) => { nativeModule().ubrn_uniffi_mermaid_wrapper_fn_func_set_timing_logs(
151
+ FfiConverterBool.lower(enabled),
152
+ callStatus);
153
+ },
154
+ /*liftString:*/ FfiConverterString.lift,
155
+ );
156
+ }
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ export type ArielLayoutConfig = {
168
+ nodeSpacing?: /*f32*/number,
169
+ rankSpacing?: /*f32*/number
170
+ }
171
+
172
+ /**
173
+ * Generated factory for {@link ArielLayoutConfig} record objects.
174
+ */
175
+ export const ArielLayoutConfig = (() => {
176
+ const defaults = () => ({
177
+ });
178
+ const create = (() => {
179
+ return uniffiCreateRecord<ArielLayoutConfig, ReturnType<typeof defaults>>(defaults);
180
+ })();
181
+ return Object.freeze({
182
+ create,
183
+ new: create,
184
+ defaults: () => Object.freeze(defaults()) as Partial<ArielLayoutConfig>,
185
+
186
+ });
187
+ })();
188
+
189
+ const FfiConverterTypeArielLayoutConfig = (() => {
190
+ type TypeName = ArielLayoutConfig;
191
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
192
+ read(from: RustBuffer): TypeName {
193
+ return {
194
+ nodeSpacing: FfiConverterOptionalFloat32.read(from),
195
+ rankSpacing: FfiConverterOptionalFloat32.read(from)
196
+ };
197
+ }
198
+ write(value: TypeName, into: RustBuffer): void {
199
+ FfiConverterOptionalFloat32.write(value.nodeSpacing, into);
200
+ FfiConverterOptionalFloat32.write(value.rankSpacing, into);
201
+ }
202
+ allocationSize(value: TypeName): number {
203
+ return FfiConverterOptionalFloat32.allocationSize(value.nodeSpacing) +
204
+ FfiConverterOptionalFloat32.allocationSize(value.rankSpacing);
205
+
206
+ }
207
+ };
208
+ return new FFIConverter();
209
+ })();
210
+
211
+
212
+ export type ArielRenderResult = {
213
+ svg: string,
214
+ parseUs: /*u64*/bigint,
215
+ layoutUs: /*u64*/bigint,
216
+ renderUs: /*u64*/bigint,
217
+ totalMs: /*f64*/number
218
+ }
219
+
220
+ /**
221
+ * Generated factory for {@link ArielRenderResult} record objects.
222
+ */
223
+ export const ArielRenderResult = (() => {
224
+ const defaults = () => ({
225
+ });
226
+ const create = (() => {
227
+ return uniffiCreateRecord<ArielRenderResult, ReturnType<typeof defaults>>(defaults);
228
+ })();
229
+ return Object.freeze({
230
+ create,
231
+ new: create,
232
+ defaults: () => Object.freeze(defaults()) as Partial<ArielRenderResult>,
233
+
234
+ });
235
+ })();
236
+
237
+ const FfiConverterTypeArielRenderResult = (() => {
238
+ type TypeName = ArielRenderResult;
239
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
240
+ read(from: RustBuffer): TypeName {
241
+ return {
242
+ svg: FfiConverterString.read(from),
243
+ parseUs: FfiConverterUInt64.read(from),
244
+ layoutUs: FfiConverterUInt64.read(from),
245
+ renderUs: FfiConverterUInt64.read(from),
246
+ totalMs: FfiConverterFloat64.read(from)
247
+ };
248
+ }
249
+ write(value: TypeName, into: RustBuffer): void {
250
+ FfiConverterString.write(value.svg, into);
251
+ FfiConverterUInt64.write(value.parseUs, into);
252
+ FfiConverterUInt64.write(value.layoutUs, into);
253
+ FfiConverterUInt64.write(value.renderUs, into);
254
+ FfiConverterFloat64.write(value.totalMs, into);
255
+ }
256
+ allocationSize(value: TypeName): number {
257
+ return FfiConverterString.allocationSize(value.svg) +
258
+ FfiConverterUInt64.allocationSize(value.parseUs) +
259
+ FfiConverterUInt64.allocationSize(value.layoutUs) +
260
+ FfiConverterUInt64.allocationSize(value.renderUs) +
261
+ FfiConverterFloat64.allocationSize(value.totalMs);
262
+
263
+ }
264
+ };
265
+ return new FFIConverter();
266
+ })();
267
+
268
+
269
+ const stringConverter = {
270
+ stringToBytes: (s: string) =>
271
+ uniffiCaller.rustCall((status) => nativeModule().ubrn_uniffi_internal_fn_func_ffi__string_to_arraybuffer(s, status)),
272
+ bytesToString: (ab: UniffiByteArray) =>
273
+ uniffiCaller.rustCall((status) => nativeModule().ubrn_uniffi_internal_fn_func_ffi__arraybuffer_to_string(ab, status)),
274
+ stringByteLength: (s: string) =>
275
+ uniffiCaller.rustCall((status) => nativeModule().ubrn_uniffi_internal_fn_func_ffi__string_to_byte_length(s, status)),
276
+ };
277
+ const FfiConverterString = uniffiCreateFfiConverterString(stringConverter);
278
+
279
+
280
+
281
+
282
+ // Error type: MermaidError
283
+
284
+ // Enum: MermaidError
285
+ export enum MermaidError_Tags {
286
+ RenderError = "RenderError"
287
+ }
288
+ export const MermaidError = (() => {
289
+
290
+
291
+ type RenderError__interface = {
292
+ tag: MermaidError_Tags.RenderError;
293
+ inner: Readonly<{message: string}>
294
+ };
295
+
296
+
297
+ class RenderError_ extends UniffiError implements RenderError__interface {
298
+ /**
299
+ * @private
300
+ * This field is private and should not be used, use `tag` instead.
301
+ */
302
+ readonly [uniffiTypeNameSymbol] = "MermaidError";
303
+ readonly tag = MermaidError_Tags.RenderError;
304
+ readonly inner: Readonly<{message: string}>;
305
+ constructor(inner: { message: string }) {
306
+ super("MermaidError", "RenderError");
307
+ this.inner = Object.freeze(inner);
308
+ }
309
+
310
+ static new(inner: { message: string }): RenderError_ {
311
+ return new RenderError_(inner);
312
+ }
313
+
314
+ static instanceOf(obj: any): obj is RenderError_ {
315
+ return obj.tag === MermaidError_Tags.RenderError;
316
+ }
317
+
318
+
319
+
320
+ static hasInner(obj: any): obj is RenderError_ {
321
+ return RenderError_.instanceOf(obj);
322
+ }
323
+
324
+ static getInner(obj: RenderError_): Readonly<{message: string}> {
325
+ return obj.inner;
326
+ }
327
+
328
+ }
329
+
330
+ function instanceOf(obj: any): obj is MermaidError {
331
+ return obj[uniffiTypeNameSymbol] === "MermaidError";
332
+ }
333
+
334
+ return Object.freeze({
335
+ instanceOf,
336
+ RenderError: RenderError_
337
+ });
338
+
339
+ })();
340
+
341
+
342
+
343
+ export type MermaidError = InstanceType<
344
+ typeof MermaidError[keyof Omit<typeof MermaidError, 'instanceOf'>]
345
+ >;
346
+
347
+ // FfiConverter for enum MermaidError
348
+ const FfiConverterTypeMermaidError = (() => {
349
+ const ordinalConverter = FfiConverterInt32;
350
+ type TypeName = MermaidError;
351
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
352
+ read(from: RustBuffer): TypeName {
353
+ switch (ordinalConverter.read(from)) {
354
+ case 1: return new MermaidError.RenderError({message: FfiConverterString.read(from) });
355
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
356
+ }
357
+ }
358
+ write(value: TypeName, into: RustBuffer): void {
359
+ switch (value.tag) {
360
+ case MermaidError_Tags.RenderError: {
361
+ ordinalConverter.write(1, into);
362
+ const inner = value.inner;
363
+ FfiConverterString.write(inner.message, into);
364
+ return;
365
+ }
366
+ default:
367
+ // Throwing from here means that MermaidError_Tags hasn't matched an ordinal.
368
+ throw new UniffiInternalError.UnexpectedEnumCase();
369
+ }
370
+ }
371
+ allocationSize(value: TypeName): number {
372
+ switch (value.tag) {
373
+ case MermaidError_Tags.RenderError: {
374
+ const inner = value.inner;
375
+ let size = ordinalConverter.allocationSize(1);
376
+ size += FfiConverterString.allocationSize(inner.message);
377
+ return size;
378
+ }
379
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
380
+ }
381
+ }
382
+ }
383
+ return new FFIConverter();
384
+ })();
385
+
386
+
387
+ export interface ArielLayoutLike {
388
+
389
+ }
390
+ /**
391
+ * @deprecated Use `ArielLayoutLike` instead.
392
+ */
393
+ export type ArielLayoutInterface = ArielLayoutLike;
394
+
395
+
396
+ export class ArielLayout extends UniffiAbstractObject implements ArielLayoutLike {
397
+
398
+ readonly [uniffiTypeNameSymbol] = "ArielLayout";
399
+ readonly [destructorGuardSymbol]: UniffiGcObject;
400
+ readonly [pointerLiteralSymbol]: UniffiHandle;
401
+ // No primary constructor declared for this class.
402
+ private constructor(pointer: UniffiHandle) {
403
+ super();
404
+ this[pointerLiteralSymbol] = pointer;
405
+ this[destructorGuardSymbol] = uniffiTypeArielLayoutObjectFactory.bless(pointer);
406
+ }
407
+
408
+
409
+
410
+
411
+
412
+ /**
413
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
414
+ */
415
+ uniffiDestroy(): void {
416
+ const ptr = (this as any)[destructorGuardSymbol];
417
+ if (ptr !== undefined) {
418
+ const pointer = uniffiTypeArielLayoutObjectFactory.pointer(this);
419
+ uniffiTypeArielLayoutObjectFactory.freePointer(pointer);
420
+ uniffiTypeArielLayoutObjectFactory.unbless(ptr);
421
+ delete (this as any)[destructorGuardSymbol];
422
+ }
423
+ }
424
+
425
+ static instanceOf(obj: any): obj is ArielLayout {
426
+ return uniffiTypeArielLayoutObjectFactory.isConcreteType(obj);
427
+ }
428
+
429
+
430
+ }
431
+
432
+ const uniffiTypeArielLayoutObjectFactory: UniffiObjectFactory<ArielLayoutLike> = (() => {
433
+
434
+ return {
435
+ create(pointer: UniffiHandle): ArielLayoutLike {
436
+ const instance = Object.create(ArielLayout.prototype);
437
+ instance[pointerLiteralSymbol] = pointer;
438
+ instance[destructorGuardSymbol] = this.bless(pointer);
439
+ instance[uniffiTypeNameSymbol] = "ArielLayout";
440
+ return instance;
441
+ },
442
+
443
+
444
+ bless(p: UniffiHandle): UniffiGcObject {
445
+ return uniffiCaller.rustCall(
446
+ /*caller:*/ (status) =>
447
+ nativeModule().ubrn_uniffi_internal_fn_method_ariellayout_ffi__bless_pointer(p, status),
448
+ /*liftString:*/ FfiConverterString.lift
449
+ );
450
+ },
451
+
452
+ unbless(ptr: UniffiGcObject) {
453
+ ptr.markDestroyed();
454
+ },
455
+
456
+ pointer(obj: ArielLayoutLike): UniffiHandle {
457
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
458
+ throw new UniffiInternalError.UnexpectedNullPointer();
459
+ }
460
+ return (obj as any)[pointerLiteralSymbol];
461
+ },
462
+
463
+ clonePointer(obj: ArielLayoutLike): UniffiHandle {
464
+ const pointer = this.pointer(obj);
465
+ return uniffiCaller.rustCall(
466
+ /*caller:*/ (callStatus) => nativeModule().ubrn_uniffi_mermaid_wrapper_fn_clone_ariellayout(pointer, callStatus),
467
+ /*liftString:*/ FfiConverterString.lift
468
+ );
469
+ },
470
+
471
+ freePointer(pointer: UniffiHandle): void {
472
+ uniffiCaller.rustCall(
473
+ /*caller:*/ (callStatus) => nativeModule().ubrn_uniffi_mermaid_wrapper_fn_free_ariellayout(pointer, callStatus),
474
+ /*liftString:*/ FfiConverterString.lift
475
+ );
476
+ },
477
+
478
+ isConcreteType(obj: any): obj is ArielLayoutLike {
479
+ return obj[destructorGuardSymbol] && obj[uniffiTypeNameSymbol] === "ArielLayout";
480
+ },
481
+ }})();
482
+ // FfiConverter for ArielLayoutLike
483
+ const FfiConverterTypeArielLayout = new FfiConverterObject(uniffiTypeArielLayoutObjectFactory);
484
+
485
+
486
+ export interface ArielParsedDiagramLike {
487
+
488
+ }
489
+ /**
490
+ * @deprecated Use `ArielParsedDiagramLike` instead.
491
+ */
492
+ export type ArielParsedDiagramInterface = ArielParsedDiagramLike;
493
+
494
+
495
+ export class ArielParsedDiagram extends UniffiAbstractObject implements ArielParsedDiagramLike {
496
+
497
+ readonly [uniffiTypeNameSymbol] = "ArielParsedDiagram";
498
+ readonly [destructorGuardSymbol]: UniffiGcObject;
499
+ readonly [pointerLiteralSymbol]: UniffiHandle;
500
+ // No primary constructor declared for this class.
501
+ private constructor(pointer: UniffiHandle) {
502
+ super();
503
+ this[pointerLiteralSymbol] = pointer;
504
+ this[destructorGuardSymbol] = uniffiTypeArielParsedDiagramObjectFactory.bless(pointer);
505
+ }
506
+
507
+
508
+
509
+
510
+
511
+ /**
512
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
513
+ */
514
+ uniffiDestroy(): void {
515
+ const ptr = (this as any)[destructorGuardSymbol];
516
+ if (ptr !== undefined) {
517
+ const pointer = uniffiTypeArielParsedDiagramObjectFactory.pointer(this);
518
+ uniffiTypeArielParsedDiagramObjectFactory.freePointer(pointer);
519
+ uniffiTypeArielParsedDiagramObjectFactory.unbless(ptr);
520
+ delete (this as any)[destructorGuardSymbol];
521
+ }
522
+ }
523
+
524
+ static instanceOf(obj: any): obj is ArielParsedDiagram {
525
+ return uniffiTypeArielParsedDiagramObjectFactory.isConcreteType(obj);
526
+ }
527
+
528
+
529
+ }
530
+
531
+ const uniffiTypeArielParsedDiagramObjectFactory: UniffiObjectFactory<ArielParsedDiagramLike> = (() => {
532
+
533
+ return {
534
+ create(pointer: UniffiHandle): ArielParsedDiagramLike {
535
+ const instance = Object.create(ArielParsedDiagram.prototype);
536
+ instance[pointerLiteralSymbol] = pointer;
537
+ instance[destructorGuardSymbol] = this.bless(pointer);
538
+ instance[uniffiTypeNameSymbol] = "ArielParsedDiagram";
539
+ return instance;
540
+ },
541
+
542
+
543
+ bless(p: UniffiHandle): UniffiGcObject {
544
+ return uniffiCaller.rustCall(
545
+ /*caller:*/ (status) =>
546
+ nativeModule().ubrn_uniffi_internal_fn_method_arielparseddiagram_ffi__bless_pointer(p, status),
547
+ /*liftString:*/ FfiConverterString.lift
548
+ );
549
+ },
550
+
551
+ unbless(ptr: UniffiGcObject) {
552
+ ptr.markDestroyed();
553
+ },
554
+
555
+ pointer(obj: ArielParsedDiagramLike): UniffiHandle {
556
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
557
+ throw new UniffiInternalError.UnexpectedNullPointer();
558
+ }
559
+ return (obj as any)[pointerLiteralSymbol];
560
+ },
561
+
562
+ clonePointer(obj: ArielParsedDiagramLike): UniffiHandle {
563
+ const pointer = this.pointer(obj);
564
+ return uniffiCaller.rustCall(
565
+ /*caller:*/ (callStatus) => nativeModule().ubrn_uniffi_mermaid_wrapper_fn_clone_arielparseddiagram(pointer, callStatus),
566
+ /*liftString:*/ FfiConverterString.lift
567
+ );
568
+ },
569
+
570
+ freePointer(pointer: UniffiHandle): void {
571
+ uniffiCaller.rustCall(
572
+ /*caller:*/ (callStatus) => nativeModule().ubrn_uniffi_mermaid_wrapper_fn_free_arielparseddiagram(pointer, callStatus),
573
+ /*liftString:*/ FfiConverterString.lift
574
+ );
575
+ },
576
+
577
+ isConcreteType(obj: any): obj is ArielParsedDiagramLike {
578
+ return obj[destructorGuardSymbol] && obj[uniffiTypeNameSymbol] === "ArielParsedDiagram";
579
+ },
580
+ }})();
581
+ // FfiConverter for ArielParsedDiagramLike
582
+ const FfiConverterTypeArielParsedDiagram = new FfiConverterObject(uniffiTypeArielParsedDiagramObjectFactory);
583
+
584
+
585
+ export interface ArielThemeLike {
586
+
587
+ }
588
+ /**
589
+ * @deprecated Use `ArielThemeLike` instead.
590
+ */
591
+ export type ArielThemeInterface = ArielThemeLike;
592
+
593
+
594
+ export class ArielTheme extends UniffiAbstractObject implements ArielThemeLike {
595
+
596
+ readonly [uniffiTypeNameSymbol] = "ArielTheme";
597
+ readonly [destructorGuardSymbol]: UniffiGcObject;
598
+ readonly [pointerLiteralSymbol]: UniffiHandle;
599
+ // No primary constructor declared for this class.
600
+ private constructor(pointer: UniffiHandle) {
601
+ super();
602
+ this[pointerLiteralSymbol] = pointer;
603
+ this[destructorGuardSymbol] = uniffiTypeArielThemeObjectFactory.bless(pointer);
604
+ }
605
+
606
+
607
+ static mermaidDefault(): ArielThemeLike {
608
+ return FfiConverterTypeArielTheme.lift(uniffiCaller.rustCall(
609
+ /*caller:*/ (callStatus) => {
610
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_constructor_arieltheme_mermaid_default(
611
+ callStatus);
612
+ },
613
+ /*liftString:*/ FfiConverterString.lift,
614
+ ));
615
+ }
616
+
617
+ static modern(): ArielThemeLike {
618
+ return FfiConverterTypeArielTheme.lift(uniffiCaller.rustCall(
619
+ /*caller:*/ (callStatus) => {
620
+ return nativeModule().ubrn_uniffi_mermaid_wrapper_fn_constructor_arieltheme_modern(
621
+ callStatus);
622
+ },
623
+ /*liftString:*/ FfiConverterString.lift,
624
+ ));
625
+ }
626
+
627
+
628
+
629
+
630
+ /**
631
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
632
+ */
633
+ uniffiDestroy(): void {
634
+ const ptr = (this as any)[destructorGuardSymbol];
635
+ if (ptr !== undefined) {
636
+ const pointer = uniffiTypeArielThemeObjectFactory.pointer(this);
637
+ uniffiTypeArielThemeObjectFactory.freePointer(pointer);
638
+ uniffiTypeArielThemeObjectFactory.unbless(ptr);
639
+ delete (this as any)[destructorGuardSymbol];
640
+ }
641
+ }
642
+
643
+ static instanceOf(obj: any): obj is ArielTheme {
644
+ return uniffiTypeArielThemeObjectFactory.isConcreteType(obj);
645
+ }
646
+
647
+
648
+ }
649
+
650
+ const uniffiTypeArielThemeObjectFactory: UniffiObjectFactory<ArielThemeLike> = (() => {
651
+
652
+ return {
653
+ create(pointer: UniffiHandle): ArielThemeLike {
654
+ const instance = Object.create(ArielTheme.prototype);
655
+ instance[pointerLiteralSymbol] = pointer;
656
+ instance[destructorGuardSymbol] = this.bless(pointer);
657
+ instance[uniffiTypeNameSymbol] = "ArielTheme";
658
+ return instance;
659
+ },
660
+
661
+
662
+ bless(p: UniffiHandle): UniffiGcObject {
663
+ return uniffiCaller.rustCall(
664
+ /*caller:*/ (status) =>
665
+ nativeModule().ubrn_uniffi_internal_fn_method_arieltheme_ffi__bless_pointer(p, status),
666
+ /*liftString:*/ FfiConverterString.lift
667
+ );
668
+ },
669
+
670
+ unbless(ptr: UniffiGcObject) {
671
+ ptr.markDestroyed();
672
+ },
673
+
674
+ pointer(obj: ArielThemeLike): UniffiHandle {
675
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
676
+ throw new UniffiInternalError.UnexpectedNullPointer();
677
+ }
678
+ return (obj as any)[pointerLiteralSymbol];
679
+ },
680
+
681
+ clonePointer(obj: ArielThemeLike): UniffiHandle {
682
+ const pointer = this.pointer(obj);
683
+ return uniffiCaller.rustCall(
684
+ /*caller:*/ (callStatus) => nativeModule().ubrn_uniffi_mermaid_wrapper_fn_clone_arieltheme(pointer, callStatus),
685
+ /*liftString:*/ FfiConverterString.lift
686
+ );
687
+ },
688
+
689
+ freePointer(pointer: UniffiHandle): void {
690
+ uniffiCaller.rustCall(
691
+ /*caller:*/ (callStatus) => nativeModule().ubrn_uniffi_mermaid_wrapper_fn_free_arieltheme(pointer, callStatus),
692
+ /*liftString:*/ FfiConverterString.lift
693
+ );
694
+ },
695
+
696
+ isConcreteType(obj: any): obj is ArielThemeLike {
697
+ return obj[destructorGuardSymbol] && obj[uniffiTypeNameSymbol] === "ArielTheme";
698
+ },
699
+ }})();
700
+ // FfiConverter for ArielThemeLike
701
+ const FfiConverterTypeArielTheme = new FfiConverterObject(uniffiTypeArielThemeObjectFactory);
702
+
703
+
704
+ // FfiConverter for /*f32*/number | undefined
705
+ const FfiConverterOptionalFloat32 = new FfiConverterOptional(FfiConverterFloat32);
706
+
707
+ /**
708
+ * This should be called before anything else.
709
+ *
710
+ * It is likely that this is being done for you by the library's `index.ts`.
711
+ *
712
+ * It checks versions of uniffi between when the Rust scaffolding was generated
713
+ * and when the bindings were generated.
714
+ *
715
+ * It also initializes the machinery to enable Rust to talk back to Javascript.
716
+ */
717
+ function uniffiEnsureInitialized() {
718
+ // Get the bindings contract version from our ComponentInterface
719
+ const bindingsContractVersion = 30;
720
+ // Get the scaffolding contract version by calling the into the dylib
721
+ const scaffoldingContractVersion = nativeModule().ubrn_ffi_mermaid_wrapper_uniffi_contract_version();
722
+ if (bindingsContractVersion !== scaffoldingContractVersion) {
723
+ throw new UniffiInternalError.ContractVersionMismatch(scaffoldingContractVersion, bindingsContractVersion);
724
+ }
725
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_compute_diagram_layout() !== 40959) {
726
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_compute_diagram_layout");
727
+ }
728
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_parse_diagram() !== 41317) {
729
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_parse_diagram");
730
+ }
731
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_render_mermaid() !== 8014) {
732
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_render_mermaid");
733
+ }
734
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_render_mermaid_with_options() !== 46840) {
735
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_render_mermaid_with_options");
736
+ }
737
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_render_mermaid_with_timing() !== 28782) {
738
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_render_mermaid_with_timing");
739
+ }
740
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_render_svg_from_layout() !== 26512) {
741
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_render_svg_from_layout");
742
+ }
743
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_func_set_timing_logs() !== 7017) {
744
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_func_set_timing_logs");
745
+ }
746
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_constructor_arieltheme_mermaid_default() !== 51258) {
747
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_constructor_arieltheme_mermaid_default");
748
+ }
749
+ if (nativeModule().ubrn_uniffi_mermaid_wrapper_checksum_constructor_arieltheme_modern() !== 21659) {
750
+ throw new UniffiInternalError.ApiChecksumMismatch("uniffi_mermaid_wrapper_checksum_constructor_arieltheme_modern");
751
+ }
752
+
753
+ }
754
+
755
+ export default Object.freeze({
756
+ initialize: uniffiEnsureInitialized,
757
+ converters: {
758
+ FfiConverterTypeArielLayout,
759
+ FfiConverterTypeArielLayoutConfig,
760
+ FfiConverterTypeArielParsedDiagram,
761
+ FfiConverterTypeArielRenderResult,
762
+ FfiConverterTypeArielTheme,
763
+ FfiConverterTypeMermaidError,
764
+ }
765
+ });