aboutsummaryrefslogtreecommitdiff
path: root/src/blocks/date.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-16 00:07:14 +0100
committerFederico Angelilli <code@fedang.net>2024-11-16 00:07:14 +0100
commit9843c8735a5a886252858a848c473cb877875ef4 (patch)
treea78faeb471f8547c5f7982e04a55595c742bdded /src/blocks/date.c
parente85ad7414c063e42296f7ef4e202829567484ac0 (diff)
Link scheme with block
Diffstat (limited to 'src/blocks/date.c')
-rw-r--r--src/blocks/date.c31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/blocks/date.c b/src/blocks/date.c
index 93747c3..adb248e 100644
--- a/src/blocks/date.c
+++ b/src/blocks/date.c
@@ -2,7 +2,7 @@
#include <assert.h>
#include <time.h>
-#include "scheme.h"
+#include "../block.h"
#include "../any_log.h"
@@ -11,6 +11,11 @@ typedef struct {
char *format;
} block_date_t;
+static const struct timespec block_date_interval = {
+ .tv_sec = 1,
+ .tv_nsec = 0,
+};
+
static void block_date_update(block_t *block)
{
block_date_t *date = (block_date_t *)block;
@@ -26,6 +31,15 @@ static void block_date_update(block_t *block)
assert(date->block.text != NULL);
}
+static block_t *block_date_alloc(const block_scheme_t *scheme)
+{
+ block_t *block = calloc(1, sizeof(block_date_t));
+ block->type = BLOCK_TEXT;
+ block->update_interval = block_date_interval;
+ block->update_fn = block_date_update;
+ return block;
+}
+
static void block_date_clean(block_t *block)
{
block_date_t *date = (block_date_t *)block;
@@ -48,16 +62,9 @@ static bool block_date_validate(block_t *block, const block_scheme_t *scheme)
const block_scheme_t block_date_scheme = {
.name = "date",
- .block = {
- .type = BLOCK_TEXT,
- .update_interval = {
- .tv_sec = 1,
- .tv_nsec = 0,
- },
- .update_fn = block_date_update,
- .clean_fn = block_date_clean,
- },
- .size = sizeof(block_date_t),
.entries = NULL,
- .validate = block_date_validate,
+ .alloc_fn = block_date_alloc,
+ .clean_fn = block_date_clean,
+ .validate_fn = block_date_validate,
+ .resolve_fn = NULL,
};