From: Alexander Turenko via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>,
Cyrill Gorcunov <gorcunov@tarantool.org>,
Roman Khabibov <roman.habibov@tarantool.org>
Cc: Alexander Turenko <alexander.turenko@tarantool.org>,
tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH 3/4] lua: split serializer functions into sections
Date: Wed, 23 Jun 2021 22:12:41 +0300 [thread overview]
Message-ID: <2d31db521fbf9af7f0c7a6207a27ea43d0ad085a.1624474915.git.alexander.turenko@tarantool.org> (raw)
In-Reply-To: <cover.1624474915.git.alexander.turenko@tarantool.org>
And added a general comment about the compilation unit. Everything is to
simplify reading.
Part of #3228
---
src/lua/serializer.c | 8 ++++++++
src/lua/serializer.h | 23 +++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/src/lua/serializer.c b/src/lua/serializer.c
index 38b7dd8b9..8db6746a3 100644
--- a/src/lua/serializer.c
+++ b/src/lua/serializer.c
@@ -51,6 +51,8 @@ int luaL_array_metatable_ref = LUA_REFNIL;
extern uint32_t CTID_UUID;
extern uint32_t CTID_DECIMAL;
+/* {{{ luaL_serializer manipulations */
+
#define OPTION(type, name, defvalue) { #name, \
offsetof(struct luaL_serializer, name), type, defvalue}
/**
@@ -238,6 +240,10 @@ luaL_newserializer(struct lua_State *L, const char *modname,
return serializer;
}
+/* }}} luaL_serializer manipulations */
+
+/* {{{ Fill luaL_field */
+
static int
lua_gettable_wrapper(lua_State *L)
{
@@ -617,6 +623,8 @@ luaL_convertfield(struct lua_State *L, struct luaL_serializer *cfg, int idx,
lua_typename(L, lua_type(L, idx)));
}
+/* }}} Fill luaL_field */
+
int
tarantool_lua_serializer_init(struct lua_State *L)
{
diff --git a/src/lua/serializer.h b/src/lua/serializer.h
index e29d802bb..0c473c8da 100644
--- a/src/lua/serializer.h
+++ b/src/lua/serializer.h
@@ -31,6 +31,17 @@
* SUCH DAMAGE.
*/
+/**
+ * A set of helpers for converting Lua values into another
+ * representation.
+ *
+ * <struct luaL_serializer> is the serializer object: options and
+ * options inheritance.
+ *
+ * <struct luaL_field> is a Lua value descriptor, which
+ * characterizes the value.
+ */
+
#if defined(__cplusplus)
extern "C" {
#endif /* defined(__cplusplus) */
@@ -56,6 +67,8 @@ struct tt_uuid;
extern int luaL_map_metatable_ref;
extern int luaL_array_metatable_ref;
+/* {{{ luaL_serializer manipulations */
+
/**
* Common configuration options for Lua serializers (MsgPack, YAML, JSON)
*/
@@ -192,6 +205,10 @@ void
luaL_serializer_parse_options(struct lua_State *l,
struct luaL_serializer *cfg);
+/* }}} luaL_serializer manipulations */
+
+/* {{{ Fill luaL_field */
+
/** A single value on the Lua stack. */
struct luaL_field {
union {
@@ -303,6 +320,10 @@ luaL_checkfield(struct lua_State *L, struct luaL_serializer *cfg, int idx,
luaL_convertfield(L, cfg, idx, field);
}
+/* }}} Fill luaL_field */
+
+/* {{{ Set map / array hint */
+
/**
* Push Lua Table with __serialize = 'map' hint onto the stack.
* Tables with __serialize hint are properly handled by all serializers.
@@ -335,6 +356,8 @@ luaL_setarrayhint(struct lua_State *L, int idx)
lua_setmetatable(L, idx);
}
+/* }}} Set map / array hint */
+
static inline void
luaL_checkfinite(struct lua_State *L, struct luaL_serializer *cfg,
lua_Number number)
--
2.31.1
next prev parent reply other threads:[~2021-06-23 19:14 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-23 19:12 [Tarantool-patches] [PATCH 0/4] RFC: Isolate serializer helpers Alexander Turenko via Tarantool-patches
2021-06-23 19:12 ` [Tarantool-patches] [PATCH 1/4] lua: move serializer helpers into its own file Alexander Turenko via Tarantool-patches
2021-07-04 13:10 ` Vladislav Shpilevoy via Tarantool-patches
2021-07-05 6:30 ` Alexander Turenko via Tarantool-patches
2021-07-05 20:59 ` Vladislav Shpilevoy via Tarantool-patches
2021-06-23 19:12 ` [Tarantool-patches] [PATCH 2/4] lua: move luaL_newserializer() comment into header Alexander Turenko via Tarantool-patches
2021-06-23 19:12 ` Alexander Turenko via Tarantool-patches [this message]
2021-06-23 19:12 ` [Tarantool-patches] [PATCH 4/4] test: add a basic unit test for serializer helpers Alexander Turenko via Tarantool-patches
2021-06-24 6:17 ` [Tarantool-patches] [PATCH 0/4] RFC: Isolate " Cyrill Gorcunov via Tarantool-patches
2021-06-28 6:31 ` Cyrill Gorcunov via Tarantool-patches
2021-07-04 13:09 ` Vladislav Shpilevoy via Tarantool-patches
2021-07-05 6:30 ` Alexander Turenko via Tarantool-patches
2021-07-07 10:08 ` Alexander Turenko via Tarantool-patches
2021-07-07 19:09 ` Alexander Turenko via Tarantool-patches
2021-07-07 22:16 ` Vladislav Shpilevoy via Tarantool-patches
2021-07-12 7:51 ` Alexander Turenko via Tarantool-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2d31db521fbf9af7f0c7a6207a27ea43d0ad085a.1624474915.git.alexander.turenko@tarantool.org \
--to=tarantool-patches@dev.tarantool.org \
--cc=alexander.turenko@tarantool.org \
--cc=gorcunov@tarantool.org \
--cc=roman.habibov@tarantool.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH 3/4] lua: split serializer functions into sections' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox