/* * Copyright (c) 2023 Egor Tensin * This file is part of the "cimple" project. * For details, see https://github.com/egor-tensin/cimple. * Distributed under the MIT License. */ #include "buf.h" #include "log.h" #include #include #include struct buf { uint32_t size; const void *data; }; int buf_create(struct buf **_buf, const void *data, uint32_t size) { struct buf *buf = malloc(sizeof(struct buf)); if (!buf) { log_errno("malloc"); return -1; } buf->data = data; buf->size = size; *_buf = buf; return 0; } int buf_create_from_string(struct buf **buf, const char *str) { return buf_create(buf, str, strlen(str) + 1); } void buf_destroy(struct buf *buf) { free(buf); } uint32_t buf_get_size(const struct buf *buf) { return buf->size; } const void *buf_get_data(const struct buf *buf) { return buf->data; }