hyperstack_interpreter/
event_type_helpers.rs1#![allow(dead_code)]
2
3pub fn event_type_base_name(event_type: &str) -> &str {
7 event_type.rsplit("::").next().unwrap_or(event_type)
8}
9
10pub fn event_type_program(event_type: &str) -> Option<&str> {
14 event_type.rsplit_once("::").map(|(prefix, _)| prefix)
15}
16
17pub fn strip_event_type_suffix(event_type: &str) -> &str {
23 let base = event_type_base_name(event_type);
24 base.strip_suffix("IxState")
25 .or_else(|| base.strip_suffix("State"))
26 .unwrap_or(base)
27}
28
29pub fn scoped_event_type(program_name: &str, type_name: &str, is_instruction: bool) -> String {
33 let suffix = if is_instruction { "IxState" } else { "State" };
34 format!("{}::{}{}", program_name, type_name, suffix)
35}