1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! # Grift Standard Library
//!
//! Standard library features for the Grift R7RS-compliant Scheme implementation
//! that require Rust's `std` (I/O, filesystem, etc.).
//!
//! This crate implements the [`IoProvider`] trait from `grift_core` using
//! Rust's standard I/O, giving the `no_std` evaluator access to real
//! input/output when running on a hosted platform.
//!
//! ## Quick Start
//!
//! ```rust
//! use grift_std::StdIoProvider;
//! use grift_core::IoProvider;
//!
//! // Create a standard I/O provider
//! let mut io = StdIoProvider::new();
//!
//! // Check port types
//! use grift_core::PortId;
//! assert!(io.is_input_port(PortId::STDIN));
//! assert!(io.is_output_port(PortId::STDOUT));
//! ```
//!
//! ## Crate Boundary
//!
//! | Crate | `#![no_std]` | Purpose |
//! |-------|-------------|---------|
//! | `grift_core` | ✅ | Defines [`IoProvider`] trait |
//! | **`grift_std`** | ❌ | Implements [`IoProvider`] with `std::io` |
//! | `grift_eval` | ✅ | Pure evaluator, no I/O |
//! | `grift_repl` | ❌ | Interactive REPL |
pub use StdIoProvider;
// Re-export the trait so users can access it without a separate grift_core dep.
pub use ;