aboutsummaryrefslogtreecommitdiffstats
path: root/src/writer.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-06-03 19:47:07 +0200
committerDavid Robillard <d@drobilla.net>2018-11-25 22:12:47 +0100
commit957fbbae9d51e3850f00ed109052ce7bab7087e0 (patch)
tree1c34e3bad481e08f40e800b1cc20aaaa809aad97 /src/writer.c
parentcd63c3d8d0627b5cb6c060db5f5132c0dbcc9a79 (diff)
downloadserd-957fbbae9d51e3850f00ed109052ce7bab7087e0.tar.gz
serd-957fbbae9d51e3850f00ed109052ce7bab7087e0.tar.bz2
serd-957fbbae9d51e3850f00ed109052ce7bab7087e0.zip
Make statement sink take a statement rather than nodes
This makes the interface more extensible, towards associating more information with statements. The serd_sink_write_nodes wrapper remains so that user code does not need to allocate in order to write statement.
Diffstat (limited to 'src/writer.c')
-rw-r--r--src/writer.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/writer.c b/src/writer.c
index 807ae8be..cbd3baa6 100644
--- a/src/writer.c
+++ b/src/writer.c
@@ -682,13 +682,15 @@ write_list_obj(SerdWriter* writer,
}
static SerdStatus
-serd_writer_write_statement(SerdWriter* writer,
- SerdStatementFlags flags,
- const SerdNode* graph,
- const SerdNode* subject,
- const SerdNode* predicate,
- const SerdNode* object)
+serd_writer_write_statement(SerdWriter* writer,
+ SerdStatementFlags flags,
+ const SerdStatement* statement)
{
+ const SerdNode* const subject = serd_statement_get_subject(statement);
+ const SerdNode* const predicate = serd_statement_get_predicate(statement);
+ const SerdNode* const object = serd_statement_get_object(statement);
+ const SerdNode* const graph = serd_statement_get_graph(statement);
+
if (!subject || !predicate || !object ||
!is_resource(subject) || !is_resource(predicate)) {
return SERD_ERR_BAD_ARG;