about summary refs log tree commit diff
path: root/tvix/eval/src/value
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2023-02-27T10·50+0300
committertazjin <tazjin@tvl.su>2023-03-13T20·30+0000
commit43d04d9b985855cb431024d9895d52ea52fd4180 (patch)
treedbf61bc1bff75a9163050ac2e8e97bb4b582c47b /tvix/eval/src/value
parent52b7a762681fb04ae9387c2f1951a36bf83ebc79 (diff)
refactor(tvix/eval): box PathBuf r/5969
This shaves another 8 bytes off Value. How did that type get so big?!

Change-Id: I65e9b59a1636bd57e3cc4aec5fea16887070b832
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8153
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval/src/value')
-rw-r--r--tvix/eval/src/value/arbitrary.rs2
-rw-r--r--tvix/eval/src/value/mod.rs8
2 files changed, 5 insertions, 5 deletions
diff --git a/tvix/eval/src/value/arbitrary.rs b/tvix/eval/src/value/arbitrary.rs
index b00fdbd21ddf..bf53f4fcb28a 100644
--- a/tvix/eval/src/value/arbitrary.rs
+++ b/tvix/eval/src/value/arbitrary.rs
@@ -92,7 +92,7 @@ fn leaf_value() -> impl Strategy<Value = Value> {
         any::<i64>().prop_map(Integer),
         any::<f64>().prop_map(Float),
         any::<NixString>().prop_map(String),
-        any::<OsString>().prop_map(|s| Path(s.into())),
+        any::<OsString>().prop_map(|s| Path(Box::new(s.into()))),
     ]
 }
 
diff --git a/tvix/eval/src/value/mod.rs b/tvix/eval/src/value/mod.rs
index 81e537313227..4acdd135f4bb 100644
--- a/tvix/eval/src/value/mod.rs
+++ b/tvix/eval/src/value/mod.rs
@@ -49,7 +49,7 @@ pub enum Value {
     String(NixString),
 
     #[serde(skip)]
-    Path(PathBuf),
+    Path(Box<PathBuf>),
     Attrs(Box<NixAttrs>),
     List(NixList),
 
@@ -75,7 +75,7 @@ pub enum Value {
     #[serde(skip)]
     DeferredUpvalue(StackIdx),
     #[serde(skip)]
-    UnresolvedPath(PathBuf),
+    UnresolvedPath(Box<PathBuf>),
 }
 
 lazy_static! {
@@ -256,7 +256,7 @@ impl Value {
             // Unicode. See also b/189.
             (Value::Path(p), _) => {
                 // TODO(tazjin): there are cases where coerce_to_string does not import
-                let imported = generators::request_path_import(&co, p).await;
+                let imported = generators::request_path_import(&co, *p).await;
                 Ok(imported.to_string_lossy().into_owned().into())
             }
 
@@ -800,7 +800,7 @@ impl From<f64> for Value {
 
 impl From<PathBuf> for Value {
     fn from(path: PathBuf) -> Self {
-        Self::Path(path)
+        Self::Path(Box::new(path))
     }
 }