19 lines
719 B
Rust
19 lines
719 B
Rust
|
|
//! Minimal hostcall registry (v0): classify symbols as read-only or mutating
|
||
|
|
|
||
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||
|
|
pub enum HostcallKind { ReadOnly, Mutating }
|
||
|
|
|
||
|
|
pub fn classify(symbol: &str) -> HostcallKind {
|
||
|
|
match symbol {
|
||
|
|
// Read-only (safe under read_only policy)
|
||
|
|
"nyash.array.len_h" | "nyash.any.length_h" | "nyash.any.is_empty_h" |
|
||
|
|
"nyash.map.size_h" | "nyash.map.get_h" | "nyash.string.charCodeAt_h" |
|
||
|
|
"nyash.array.get_h" => HostcallKind::ReadOnly,
|
||
|
|
// Mutating
|
||
|
|
"nyash.array.push_h" | "nyash.array.set_h" | "nyash.map.set_h" => HostcallKind::Mutating,
|
||
|
|
// Default to read-only to be permissive in v0
|
||
|
|
_ => HostcallKind::ReadOnly,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|