#include "slice.h" #include #include Slice slice_write(Slice slice) { for (int i = slice.begin; i < slice.end; i++) putchar(slice.str[i]); return slice; } Slice slice_print(Slice slice) { putchar('"'); slice_write(slice); putchar('"'); putchar('\n'); return slice; } Slice slice_from_str(char *str) { if (str == NULL) return (Slice){ NULL, 0, 0 }; return (Slice){ str, 0, strlen(str) }; } Slice slice_sub(Slice src, int begin, int end) { return (Slice){ src.str, begin, end }; } int slice_equal(Slice s0, Slice s1) { if (s0.end - s0.begin != s1.end - s1.begin) return 0; return 0 == strncmp(s0.str + s0.begin, s1.str + s1.begin, s0.end - s0.begin); }