diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-05-03 16:59:13 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-05-04 00:14:31 +0200 |
| commit | 507c5fc92563560426db0d86c0348880b0493467 (patch) | |
| tree | 45116b62fb0fffe8e88d6c96ae1fcf11c73f8ee9 /src/library | |
| parent | e18a896a93cae987aa30addd40e678bf0064fd31 (diff) | |
Text replacement show rules
Diffstat (limited to 'src/library')
| -rw-r--r-- | src/library/mod.rs | 1 | ||||
| -rw-r--r-- | src/library/utility/blind.rs | 9 | ||||
| -rw-r--r-- | src/library/utility/mod.rs | 2 | ||||
| -rw-r--r-- | src/library/utility/string.rs | 15 |
4 files changed, 16 insertions, 11 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs index e90e5cc4..eeda620d 100644 --- a/src/library/mod.rs +++ b/src/library/mod.rs @@ -83,6 +83,7 @@ pub fn new() -> Scope { std.def_fn("cmyk", utility::cmyk); std.def_fn("repr", utility::repr); std.def_fn("str", utility::str); + std.def_fn("regex", utility::regex); std.def_fn("lower", utility::lower); std.def_fn("upper", utility::upper); std.def_fn("letter", utility::letter); diff --git a/src/library/utility/blind.rs b/src/library/utility/blind.rs deleted file mode 100644 index 0075ab91..00000000 --- a/src/library/utility/blind.rs +++ /dev/null @@ -1,9 +0,0 @@ -use lipsum::lipsum_from_seed; - -use crate::library::prelude::*; - -/// Create blind text. -pub fn lorem(_: &mut Context, args: &mut Args) -> TypResult<Value> { - let words: usize = args.expect("number of words")?; - Ok(Value::Str(lipsum_from_seed(words, 97).into())) -} diff --git a/src/library/utility/mod.rs b/src/library/utility/mod.rs index 4244ccbf..13220242 100644 --- a/src/library/utility/mod.rs +++ b/src/library/utility/mod.rs @@ -1,11 +1,9 @@ //! Computational utility functions. -mod blind; mod color; mod math; mod string; -pub use blind::*; pub use color::*; pub use math::*; pub use string::*; diff --git a/src/library/utility/string.rs b/src/library/utility/string.rs index 92d80be2..0b309b31 100644 --- a/src/library/utility/string.rs +++ b/src/library/utility/string.rs @@ -1,3 +1,6 @@ +use lipsum::lipsum_from_seed; + +use crate::eval::Regex; use crate::library::prelude::*; use crate::library::text::{Case, TextNode}; @@ -37,6 +40,18 @@ fn case(case: Case, args: &mut Args) -> TypResult<Value> { }) } +/// Create blind text. +pub fn lorem(_: &mut Context, args: &mut Args) -> TypResult<Value> { + let words: usize = args.expect("number of words")?; + Ok(Value::Str(lipsum_from_seed(words, 97).into())) +} + +/// Create a regular expression. +pub fn regex(_: &mut Context, args: &mut Args) -> TypResult<Value> { + let Spanned { v, span } = args.expect::<Spanned<EcoString>>("regular expression")?; + Ok(Regex::new(&v).at(span)?.into()) +} + /// Converts an integer into one or multiple letters. pub fn letter(_: &mut Context, args: &mut Args) -> TypResult<Value> { convert(Numbering::Letter, args) |
