]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Migrate lualib/lua_selectors/common.lua to lua_shape
authorVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 18 Nov 2025 12:00:58 +0000 (12:00 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Tue, 18 Nov 2025 12:00:58 +0000 (12:00 +0000)
Replace tableshape with lua_shape in selectors common utilities.

Changes:
- ts.one_of { ... } → T.enum({ ... })
- :is_optional() → :optional()
- Added documentation to schema fields

Schema: digest_schema returns array with optional encoding format
and optional hash algorithm for selector digest operations.

lualib/lua_selectors/common.lua

index 7b2372da81ed9d8f3ce935054ee39c43a254ee40..c375dd34e39d235951144e134dfa7f3b00f8a33c 100644 (file)
@@ -14,15 +14,17 @@ See the License for the specific language governing permissions and
 limitations under the License.
 ]]--
 
-local ts = require("tableshape").types
+local T = require "lua_shape.core"
 local exports = {}
 local cr_hash = require 'rspamd_cryptobox_hash'
 
 local blake2b_key = cr_hash.create_specific('blake2'):update('rspamd'):bin()
 
 local function digest_schema()
-  return { ts.one_of { 'hex', 'base32', 'bleach32', 'rbase32', 'base64' }:is_optional(),
-           ts.one_of { 'blake2', 'sha256', 'sha1', 'sha512', 'md5' }:is_optional() }
+  return {
+    T.enum({ 'hex', 'base32', 'bleach32', 'rbase32', 'base64' }):optional():doc({ summary = "Encoding format" }),
+    T.enum({ 'blake2', 'sha256', 'sha1', 'sha512', 'md5' }):optional():doc({ summary = "Hash algorithm" })
+  }
 end
 
 exports.digest_schema = digest_schema