diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-12-01 08:06:37 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-01 08:06:37 +0800 |
commit | 09e93d7c4d33451ffe2dd2edeb7e2124b83c8078 (patch) | |
tree | c0d1d3de8f4dbd578e6c4d53bb91a55896b169c2 /src/nvim/rbuffer_defs.h | |
parent | b32b5b2711ed338f4944c983a247f80c3163f87c (diff) | |
download | rneovim-09e93d7c4d33451ffe2dd2edeb7e2124b83c8078.tar.gz rneovim-09e93d7c4d33451ffe2dd2edeb7e2124b83c8078.tar.bz2 rneovim-09e93d7c4d33451ffe2dd2edeb7e2124b83c8078.zip |
refactor(IWYU): create {ex_getln,rbuffer,os/fileio}_defs.h (#26338)
Diffstat (limited to 'src/nvim/rbuffer_defs.h')
-rw-r--r-- | src/nvim/rbuffer_defs.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/nvim/rbuffer_defs.h b/src/nvim/rbuffer_defs.h new file mode 100644 index 0000000000..51dc349846 --- /dev/null +++ b/src/nvim/rbuffer_defs.h @@ -0,0 +1,45 @@ +#pragma once + +#include <stddef.h> + +#include "nvim/func_attr.h" + +typedef struct rbuffer RBuffer; +/// Type of function invoked during certain events: +/// - When the RBuffer switches to the full state +/// - When the RBuffer switches to the non-full state +typedef void (*rbuffer_callback)(RBuffer *buf, void *data); + +struct rbuffer { + rbuffer_callback full_cb, nonfull_cb; + void *data; + size_t size; + // helper memory used to by rbuffer_reset if required + char *temp; + char *end_ptr, *read_ptr, *write_ptr; + char start_ptr[]; +}; + +static inline size_t rbuffer_size(RBuffer *buf) + REAL_FATTR_ALWAYS_INLINE REAL_FATTR_NONNULL_ALL; + +static inline size_t rbuffer_size(RBuffer *buf) +{ + return buf->size; +} + +static inline size_t rbuffer_capacity(RBuffer *buf) + REAL_FATTR_ALWAYS_INLINE REAL_FATTR_NONNULL_ALL; + +static inline size_t rbuffer_capacity(RBuffer *buf) +{ + return (size_t)(buf->end_ptr - buf->start_ptr); +} + +static inline size_t rbuffer_space(RBuffer *buf) + REAL_FATTR_ALWAYS_INLINE REAL_FATTR_NONNULL_ALL; + +static inline size_t rbuffer_space(RBuffer *buf) +{ + return rbuffer_capacity(buf) - buf->size; +} |