]> git.ozlabs.org Git - ccan/blob - ccan/bytestring/bytestring.c
bytestring: Implement bytestring_spn() and bytestring_cspn()
[ccan] / ccan / bytestring / bytestring.c
1 /* Licensed under LGPLv2+ - see LICENSE file for details */
2 #include "config.h"
3
4 #include <ccan/bytestring/bytestring.h>
5
6 size_t bytestring_spn(struct bytestring s, struct bytestring accept)
7 {
8         size_t i;
9
10         for (i = 0; i < s.len; i++)
11                 if (bytestring_index(accept, s.ptr[i]) == NULL)
12                         return i;
13
14         return s.len;
15 }
16
17 size_t bytestring_cspn(struct bytestring s, struct bytestring reject)
18 {
19         size_t i;
20
21         for (i = 0; i < s.len; i++)
22                 if (bytestring_index(reject, s.ptr[i]) != NULL)
23                         return i;
24
25         return s.len;
26 }