From 7af46fc025ee08eb78ae7f6898300083c886bf6f Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 26 Nov 2022 13:39:18 +0100 Subject: Dynamic labels --- library/src/base/string.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'library/src/base') diff --git a/library/src/base/string.rs b/library/src/base/string.rs index 262dd5c6..9c3b9562 100644 --- a/library/src/base/string.rs +++ b/library/src/base/string.rs @@ -14,11 +14,17 @@ pub fn str(_: &Vm, args: &mut Args) -> SourceResult { Ok(Value::Str(match v { Value::Int(v) => format_str!("{}", v), Value::Float(v) => format_str!("{}", v), + Value::Label(label) => label.0.into(), Value::Str(v) => v, v => bail!(span, "cannot convert {} to string", v.type_name()), })) } +/// Create a label from a string. +pub fn label(_: &Vm, args: &mut Args) -> SourceResult { + Ok(Value::Label(Label(args.expect("string")?))) +} + /// Create blind text. pub fn lorem(_: &Vm, args: &mut Args) -> SourceResult { let words: usize = args.expect("number of words")?; -- cgit v1.2.3