/**
 * @file include/editline.h
 */

#pragma once
#include "str.h"

typedef struct {
  slice_t const *base;
  size_t pos;
} cursor_t;

typedef struct {
  mut_slice_t *base;
  size_t pos;
} mut_cursor_t;

typedef struct {
  size_t begin;
  size_t end;
} range_t;

#define FROM_SLICE(ms) {.base = &ms, .pos = 0}

constexpr char es = '\033';
constexpr char backspace = 127;
constexpr char ctrld = 4;

bool editline(size_t, char *);