Ivan FB dd4d093945
fix(examples): port toy-chat and tic-tac-toe-gui to the generated API
examples/ is its own cargo workspace and only examples/basic is a member
of the root one, so nothing built from the repo root ever compiled these
two. They still used waku_new, set_event_callback, WakuEvent and the
WakuNodeHandle typestate, none of which exist any more.

Both collapse their App<State> typestate: the node no longer carries one,
so neither can the app wrapping it. Event handling shrinks to a single
add_on_received_message_listener -- the filter on content topic stays,
but the enum match, the JSON parse and the panics on unexpected variants
go, since a listener only receives what it registered for. Payloads are
base64-decoded by the caller now.

The store DTOs (StoreQueryRequest, StoreResponse, StoreWakuMessageResponse)
come back as general/store.rs: they are plain serde shapes, and deleting
node/store.rs took them out along with the FFI call they sat next to.
toy-chat needs them to build the store query JSON and read the response.

CI gains a check over examples/Cargo.toml. Without it these rot silently
on the next API change, which is exactly how they got here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 01:28:54 +02:00
..

Description

This is a chat example where multiple participants can talk within the same room.

What it does

  1. Instantiates one Waku node
  2. Starts the Waku node
  3. Registers the node to waku events (messages, connection change, topic health, etc.)
  4. Subscribes de node to the game_topic
  5. Retrieves previous chat messages at the beginning

How to run

From within the examples/toy-chat/ folder, run the following to start a chat using the given nick name.

e.g.:

cargo run "Alice"