Filter

Filter example for WASM

Code

use space_lib::space;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
struct Package {
    name: String,
    amount: u64,
}

#[space]
fn main(input: Vec<Package>) -> Vec<Package> {
    input
        .into_iter()
        .filter(|it| it.name.contains("Space") && it.amount > 10)
        .collect()
}

Node Definition

{
  "type": "WASM",
  "data": {
    "node_id": "filter",
    "version": "0.1",
    "display_name": "Filter",
    "description": "Takes list of packages and filters them",
    "width": 150,
    "height": 175,
    "backgroundColor": "#ffd9b3"
  },
  "targets": [
    {
      "name": "packages",
      "type_bounds": [
        {
          "array": {
            "object": {
              "name": "string",
              "amount": "u64"
            }
          }
        }
      ],
      "required": true,
      "defaultValue": "",
      "tooltip": "",
      "passthrough": false
    }
  ],
  "sources": [
    {
      "name": "output",
      "type": {
        "array": {
          "object": {
            "name": "string",
            "amount": "u64"
          }
        }
      },
      "defaultValue": "",
      "tooltip": ""
    }
  ]
}

Last updated

Was this helpful?