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";