Skip to main content

telltale_types/
val_type.rs

1//! Value Types for Session Type Payloads
2//!
3//! Shared `ValType` definition matching Lean's `SessionTypes.ValType`.
4//! Represents the types of values carried in messages.
5
6use serde::{Deserialize, Serialize};
7
8/// Value types for message payloads in session types.
9///
10/// Corresponds to Lean's `SessionTypes.ValType`.
11#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
12pub enum ValType {
13    Unit,
14    Bool,
15    Nat,
16    String,
17    Prod(Box<ValType>, Box<ValType>),
18    /// Channel endpoint type (session id, role)
19    Chan {
20        sid: usize,
21        role: std::string::String,
22    },
23}