about summary refs log tree commit diff
path: root/tvix/eval/src
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-12-12T16·10+0300
committertazjin <tazjin@tvl.su>2022-12-21T22·53+0000
commitec3e38c2d6f3eed87bb3f36060bd4dac09a9da75 (patch)
treed2eaee85ac84602b5129c189667ee1bd56282d87 /tvix/eval/src
parent29790147b6f8c1fe763c25716f5a17a8c529ae5f (diff)
chore(tvix/eval): gate tvix_eval::StdIO behind the `impure` feature r/5462
This shouldn't be available if we've built a "pure" crate.

Change-Id: I7c85827ee212890252ff7e0b6242e2c52618cba5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7572
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'tvix/eval/src')
-rw-r--r--tvix/eval/src/io.rs2
-rw-r--r--tvix/eval/src/lib.rs5
2 files changed, 6 insertions, 1 deletions
diff --git a/tvix/eval/src/io.rs b/tvix/eval/src/io.rs
index cf9f6304305f..fd0680f3c2a5 100644
--- a/tvix/eval/src/io.rs
+++ b/tvix/eval/src/io.rs
@@ -27,8 +27,10 @@ pub trait EvalIO {
 
 /// Implementation of [`EvalIO`] that simply uses the equivalent
 /// standard library functions, i.e. does local file-IO.
+#[cfg(feature = "impure")]
 pub struct StdIO;
 
+#[cfg(feature = "impure")]
 impl EvalIO for StdIO {
     fn read_to_string(&self, path: PathBuf) -> Result<String, ErrorKind> {
         let path: PathBuf = path.into();
diff --git a/tvix/eval/src/lib.rs b/tvix/eval/src/lib.rs
index 8cf9fe6e1bba..17dff9420301 100644
--- a/tvix/eval/src/lib.rs
+++ b/tvix/eval/src/lib.rs
@@ -45,7 +45,7 @@ use std::sync::Arc;
 pub use crate::builtins::global_builtins;
 pub use crate::compiler::{compile, prepare_globals};
 pub use crate::errors::{Error, ErrorKind, EvalResult};
-pub use crate::io::{DummyIO, EvalIO, StdIO};
+pub use crate::io::{DummyIO, EvalIO};
 use crate::observer::{CompilerObserver, RuntimeObserver};
 pub use crate::pretty_ast::pretty_print_expr;
 pub use crate::source::SourceCode;
@@ -53,6 +53,9 @@ pub use crate::value::Value;
 pub use crate::vm::run_lambda;
 pub use crate::warnings::{EvalWarning, WarningKind};
 
+#[cfg(feature = "impure")]
+pub use crate::io::StdIO;
+
 /// Internal-only parts of `tvix-eval`, exported for use in macros, but not part of the public
 /// interface of the crate.
 pub mod internal {