From d26c097d1b5f99ace10e60243280f4687cfc3cb9 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 8 Aug 2022 17:09:21 +0300 Subject: [PATCH] feat(tvix/eval): add module for string type implementation Change-Id: I5e4465acc4a676c10d7374b14f7a09240202b466 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6085 Tested-by: BuildkiteCI Reviewed-by: grfn --- tvix/eval/src/{value.rs => value/mod.rs} | 3 ++- tvix/eval/src/value/string.rs | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) rename tvix/eval/src/{value.rs => value/mod.rs} (99%) create mode 100644 tvix/eval/src/value/string.rs diff --git a/tvix/eval/src/value.rs b/tvix/eval/src/value/mod.rs similarity index 99% rename from tvix/eval/src/value.rs rename to tvix/eval/src/value/mod.rs index a4656b1b9..7052df3d4 100644 --- a/tvix/eval/src/value.rs +++ b/tvix/eval/src/value/mod.rs @@ -1,10 +1,11 @@ //! This module implements the backing representation of runtime //! values in the Nix language. - use std::fmt::Display; use crate::errors::{Error, EvalResult}; +mod string; + #[derive(Clone, Copy, Debug, PartialEq)] pub enum Value { Null, diff --git a/tvix/eval/src/value/string.rs b/tvix/eval/src/value/string.rs new file mode 100644 index 000000000..c123fc3ee --- /dev/null +++ b/tvix/eval/src/value/string.rs @@ -0,0 +1,13 @@ +use std::fmt::Display; + +/// This module implements Nix language strings and their different +/// backing implementations. + +#[derive(Debug, Hash, PartialEq)] +pub struct NixString(String); + +impl Display for NixString { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str(self.0.as_str()) + } +}