wasmcloud_actor_telnet/
lib.rs

1//! # Telnet Server wasmCloud Actor Interface
2//!
3//! This crate provides an abstraction over the `wasmcloud:telnet` contract. This allows
4//! actors to be notified when a new telnet session has started and when text has been
5//! received on a given session. Actors can also emit text to a specific session, which
6//! ultimately correlates to an individual connected socket client.
7//!
8//! # Example:
9//! ```
10//! extern crate wasmcloud_actor_telnet as telnet;
11//! extern crate wasmcloud_actor_core as actorcore;
12//! use telnet::TelnetResult;
13//! use wapc_guest::HandlerResult;
14//!
15//! #[actorcore::init]
16//! pub fn init() {
17//!     telnet::Handlers::register_session_started(session_started);
18//!     telnet::Handlers::register_receive_text(receive_text);
19//! }
20//!
21//! fn session_started(session: String) -> HandlerResult<TelnetResult> {
22//!    let _ = telnet::default().send_text(session, "Welcome to the Interwebs!\n".to_string());
23//!    Ok(TelnetResult {
24//!      success: true,
25//!      error: None,
26//!    })
27//! }
28//! fn receive_text(session: String, text: String) -> HandlerResult<TelnetResult> {
29//!    let _ = telnet::default().send_text(session, format!("Echo: {}\n", text));
30//!    Ok(TelnetResult {
31//!      success: true,
32//!      error: None,
33//!    })
34//! }
35//!
36//! ```
37
38#[allow(dead_code)]
39mod generated;
40
41pub use generated::*;
42
43pub const OP_SEND_TEXT: &str = "SendText";
44pub const OP_SESSION_STARTED: &str = "SessionStarted";
45pub const OP_RECEIVE_TEXT: &str = "ReceiveText";