mirror of
https://github.com/fluencelabs/examples
synced 2025-04-25 10:42:16 +00:00
58 lines
1.4 KiB
Plaintext
58 lines
1.4 KiB
Plaintext
-- service interface for Wasm module
|
|
service AddOne:
|
|
add_one: u64 -> u64
|
|
|
|
-- identity service for formatting stream var
|
|
service MyOp("op"):
|
|
identity(u: u64)
|
|
|
|
-- convenience struc for (Peer Id, Service Id) tuples
|
|
data NodeServiceTuple:
|
|
node_id: string
|
|
service_id: string
|
|
|
|
func add_one(value: u64, node: string, service_id: string) -> u64:
|
|
on node:
|
|
AddOne service_id
|
|
res <- AddOne.add_one(value)
|
|
<- res
|
|
|
|
|
|
func add_one_three_times(value: u64, ns_tuples: []NodeServiceTuple) -> u64:
|
|
on ns_tuples!0.node_id:
|
|
AddOne ns_tuples!0.service_id
|
|
res1 <- AddOne.add_one(value)
|
|
|
|
on ns_tuples!1.node_id:
|
|
AddOne ns_tuples!1.service_id
|
|
res2 <- AddOne.add_one(res1)
|
|
|
|
on ns_tuples!2.node_id:
|
|
AddOne ns_tuples!2.service_id
|
|
res3 <- AddOne.add_one(res2)
|
|
<- res3
|
|
|
|
|
|
func add_one_par(value: u64, ns_tuples: []NodeServiceTuple) -> []u64:
|
|
res: *u64
|
|
for ns <- ns_tuples par:
|
|
on ns.node_id:
|
|
AddOne ns.service_id
|
|
res <- AddOne.add_one(value)
|
|
MyOp.identity(res!2)
|
|
<- res
|
|
|
|
data ValueNodeService:
|
|
node_id: string
|
|
service_id: string
|
|
value: u64
|
|
|
|
func add_one_par_alt(payload: []ValueNodeService) -> []u64:
|
|
res: *u64
|
|
for vns <- payload par:
|
|
on vns.node_id:
|
|
AddOne vns.service_id
|
|
res <- AddOne.add_one(vns.value)
|
|
MyOp.identity(res!2)
|
|
<- res
|