reifydb_type/value/
as_string.rs

1// Copyright (c) reifydb.com 2025
2// This file is licensed under the AGPL-3.0-or-later, see license.md file
3
4use crate::Value;
5
6pub trait AsString {
7	fn as_string(&self) -> String;
8}
9
10impl AsString for Value {
11	fn as_string(&self) -> String {
12		match self {
13			Value::Undefined => "Undefined".to_string(),
14			Value::Boolean(b) => b.to_string(),
15			Value::Float4(f) => f.to_string(),
16			Value::Float8(f) => f.to_string(),
17			Value::Int1(i) => i.to_string(),
18			Value::Int2(i) => i.to_string(),
19			Value::Int4(i) => i.to_string(),
20			Value::Int8(i) => i.to_string(),
21			Value::Int16(i) => i.to_string(),
22			Value::Utf8(s) => s.clone(),
23			Value::Uint1(u) => u.to_string(),
24			Value::Uint2(u) => u.to_string(),
25			Value::Uint4(u) => u.to_string(),
26			Value::Uint8(u) => u.to_string(),
27			Value::Uint16(u) => u.to_string(),
28			Value::Date(d) => d.to_string(),
29			Value::DateTime(dt) => dt.to_string(),
30			Value::Time(t) => t.to_string(),
31			Value::Duration(i) => i.to_string(),
32			Value::IdentityId(id) => id.to_string(),
33			Value::Uuid4(u) => u.to_string(),
34			Value::Uuid7(u) => u.to_string(),
35			Value::Blob(b) => b.to_string(),
36			Value::Int(bi) => bi.to_string(),
37			Value::Uint(bu) => bu.to_string(),
38			Value::Decimal(bd) => bd.to_string(),
39			Value::Any(v) => v.as_string(),
40		}
41	}
42}
43
44impl Value {
45	pub fn as_string(&self) -> String {
46		AsString::as_string(self)
47	}
48}