From 83386c03d379aff4ffe09cf5cd7bde18215191f2 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Sat, 13 Apr 2019 18:12:33 +0200 Subject: [PATCH] Improve documentation of builtin functions Relates to #38 --- Cargo.lock | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 9 +------- src/lib.rs | 21 +++++++++++++----- 3 files changed, 81 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 779584f..6153576 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,13 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "aho-corasick" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "base64" version = "0.10.1" @@ -22,11 +30,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "evalexpr" version = "5.0.0-alpha.0" dependencies = [ + "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "ron 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lazy_static" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "memchr" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "proc-macro2" version = "0.4.27" @@ -43,6 +62,26 @@ dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "regex" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", + "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "regex-syntax" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ron" version = "0.4.2" @@ -81,19 +120,45 @@ dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "thread_local" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "ucd-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "unicode-xid" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "utf8-ranges" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [metadata] +"checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" +"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" +"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" "checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" +"checksum regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "559008764a17de49a3146b234641644ed37d118d1ef641a0bb573d146edc6ce0" +"checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" "checksum ron 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "17f52a24414403f81528b67488cf8edc4eda977d3af1646bb6b106a600ead78f" "checksum serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "aa5f7c20820475babd2c077c3ab5f8c77a31c15e16ea38687b4c02d3e48680f4" "checksum serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)" = "58fc82bec244f168b23d1963b45c8bf5726e9a15a9d146a067f9081aeed2de79" "checksum syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)" = "66c8865bf5a7cbb662d8b011950060b3c8743dca141b054bf7195b20d314d8e2" +"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" +"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" diff --git a/README.md b/README.md index 9421533..02ddeb4 100644 --- a/README.md +++ b/README.md @@ -214,16 +214,9 @@ This crate offers a set of builtin functions. |------------|-----------------|-------------| | min | >= 1 | Returns the minimum of the arguments | | max | >= 1 | Returns the maximum of the arguments | -| len | 1 | Return the character length of string argument | -| str::regex_matches | 2 | Returns true if first string argument matches regex in second | -| str::regex_replace | 3 | Returns string with matches replaced by third argument | -| str::to_lowercase | 1 | Returns lower-case version of string | -| str::to_uppercase | 1 | Returns upper-case version of string | -| str::trim | 1 | Strips whitespace from start and end of string | The `min` and `max` functions can deal with a mixture of integer and floating point arguments. -They return the result as the type it was passed into the function. The regex functions require -feature flag `regex_support`. +They return the result as the type it was passed into the function. ### Values diff --git a/src/lib.rs b/src/lib.rs index 1619b93..957e42a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -120,7 +120,7 @@ //! | * | 100 | Product | //! | / | 100 | Division | //! | % | 100 | Modulo | -//! | + | 95 | Sum | +//! | + | 95 | Sum or String Concatenation | //! | - | 95 | Difference | //! | < | 80 | Lower than | //! | \> | 80 | Greater than | @@ -197,13 +197,22 @@ //! //! This crate offers a set of builtin functions. //! -//! | Identifier | Argument Amount | Description | -//! |------------|-----------------|-------------| -//! | min | >= 1 | Returns the minimum of the arguments | -//! | max | >= 1 | Returns the maximum of the arguments | +//! | Identifier | Argument Amount | Argument Types | Description | +//! |------------|-----------------|----------------|-------------| +//! | `min` | >= 1 | Numeric | Returns the minimum of the arguments | +//! | `max` | >= 1 | Numeric | Returns the maximum of the arguments | +//! | `len` | 1 | String | Returns the character length of a string | +//! | `str::regex_matches` | 2 | String, String | Returns true if the first argument matches the regex in the second argument | +//! | `str::regex_replace` | 3 | String, String, String | Returns the first argument with all matches of the regex in the second argument replaced by the third argument | +//! | `str::to_lowercase` | 1 | String | Returns the lower-case version of the string | +//! | `str::to_uppercase` | 1 | String | Returns the upper-case version of the string | +//! | `str::trim` | 1 | String | Strips whitespace from the start and the end of the string | //! //! The `min` and `max` functions can deal with a mixture of integer and floating point arguments. -//! They return the result as the type it was passed into the function. +//! If the maximum or minimum is an integer, then an integer is returned. +//! Otherwise, a float is returned. +//! +//! The regex functions require the feature flag `regex_support`. //! //! ### Values //!