-
-
Notifications
You must be signed in to change notification settings - Fork 73
Expand file tree
/
Copy pathSwiftClass.swift
More file actions
77 lines (69 loc) · 2.6 KB
/
SwiftClass.swift
File metadata and controls
77 lines (69 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// NOTICE: This is auto-generated code by BridgeJS from JavaScriptKit,
// DO NOT EDIT.
//
// To update this file, just rebuild your project or run
// `swift package bridge-js`.
@_spi(JSObject_id) import JavaScriptKit
#if arch(wasm32)
@_extern(wasm, module: "bjs", name: "return_string")
private func _return_string(_ ptr: UnsafePointer<UInt8>?, _ len: Int32)
@_extern(wasm, module: "bjs", name: "init_memory")
private func _init_memory(_ sourceId: Int32, _ ptr: UnsafeMutablePointer<UInt8>?)
@_extern(wasm, module: "bjs", name: "swift_js_retain")
private func _swift_js_retain(_ ptr: Int32) -> Int32
@_extern(wasm, module: "bjs", name: "swift_js_throw")
private func _swift_js_throw(_ id: Int32)
#endif
@_expose(wasm, "bjs_takeGreeter")
@_cdecl("bjs_takeGreeter")
public func _bjs_takeGreeter(greeter: UnsafeMutableRawPointer) -> Void {
#if arch(wasm32)
takeGreeter(greeter: Unmanaged<Greeter>.fromOpaque(greeter).takeUnretainedValue())
#else
fatalError("Only available on WebAssembly")
#endif
}
@_expose(wasm, "bjs_Greeter_init")
@_cdecl("bjs_Greeter_init")
public func _bjs_Greeter_init(nameBytes: Int32, nameLen: Int32) -> UnsafeMutableRawPointer {
#if arch(wasm32)
let name = String(unsafeUninitializedCapacity: Int(nameLen)) { b in
_init_memory(nameBytes, b.baseAddress.unsafelyUnwrapped)
return Int(nameLen)
}
let ret = Greeter(name: name)
return Unmanaged.passRetained(ret).toOpaque()
#else
fatalError("Only available on WebAssembly")
#endif
}
@_expose(wasm, "bjs_Greeter_greet")
@_cdecl("bjs_Greeter_greet")
public func _bjs_Greeter_greet(_self: UnsafeMutableRawPointer) -> Void {
#if arch(wasm32)
var ret = Unmanaged<Greeter>.fromOpaque(_self).takeUnretainedValue().greet()
return ret.withUTF8 { ptr in
_return_string(ptr.baseAddress, Int32(ptr.count))
}
#else
fatalError("Only available on WebAssembly")
#endif
}
@_expose(wasm, "bjs_Greeter_changeName")
@_cdecl("bjs_Greeter_changeName")
public func _bjs_Greeter_changeName(_self: UnsafeMutableRawPointer, nameBytes: Int32, nameLen: Int32) -> Void {
#if arch(wasm32)
let name = String(unsafeUninitializedCapacity: Int(nameLen)) { b in
_init_memory(nameBytes, b.baseAddress.unsafelyUnwrapped)
return Int(nameLen)
}
Unmanaged<Greeter>.fromOpaque(_self).takeUnretainedValue().changeName(name: name)
#else
fatalError("Only available on WebAssembly")
#endif
}
@_expose(wasm, "bjs_Greeter_deinit")
@_cdecl("bjs_Greeter_deinit")
public func _bjs_Greeter_deinit(pointer: UnsafeMutableRawPointer) {
Unmanaged<Greeter>.fromOpaque(pointer).release()
}