26 lines
835 B
C
26 lines
835 B
C
#ifndef IVY_COMMON_LINE_SOURCE_H_
|
|
#define IVY_COMMON_LINE_SOURCE_H_
|
|
|
|
#include <ivy/status.h>
|
|
#include <stddef.h>
|
|
|
|
struct ivy_line_source {
|
|
enum ivy_status (*s_get_name)(
|
|
struct ivy_line_source *, char *, size_t, size_t *);
|
|
enum ivy_status (*s_readline)(
|
|
struct ivy_line_source *, char *, size_t, size_t *, const char *);
|
|
enum ivy_status (*s_get_row)(
|
|
struct ivy_line_source *, size_t, char *, size_t, size_t *);
|
|
};
|
|
|
|
IVY_API enum ivy_status ivy_line_source_get_name(
|
|
struct ivy_line_source *src, char *buf, size_t count, size_t *nr_read);
|
|
IVY_API enum ivy_status ivy_line_source_readline(
|
|
struct ivy_line_source *src, char *buf, size_t count, size_t *nr_read,
|
|
const char *prompt);
|
|
IVY_API enum ivy_status ivy_line_source_get_row(
|
|
struct ivy_line_source *src, size_t row, char *buf, size_t count,
|
|
size_t *nr_read);
|
|
|
|
#endif
|