Commit Graph

2231 Commits

Author SHA1 Message Date
e2f0d23a6d io: ensure we only write views that look like bytes 2018-01-10 18:50:02 +11:00
b8fd18f1cc io: ensure view writes only take byte sized data 2018-01-10 18:50:02 +11:00
2f31cb5a1d view: disambiguate equality operators 2018-01-10 18:50:02 +11:00
a2806cfa75 view: add single iterator consume operator 2018-01-10 18:50:02 +11:00
ad02c94511 view: return unsigned types for size 2018-01-10 18:50:02 +11:00
2840810f64 build: remove unnecessary cmake module 2018-01-10 17:51:59 +11:00
9bb2bdbaba Merge remote-tracking branch 'origin/master' 2018-01-10 17:19:39 +11:00
2713da45f4 format: rework parser for currying support 2018-01-09 16:28:46 +11:00
2af828e82d time: add iso8601 parsing 2018-01-01 15:50:48 +11:00
9fbfba580a maths: allow digits10 for 64 bit integers 2018-01-01 15:46:29 +11:00
4bd693a799 maths: allow any integral exponent for pow() 2018-01-01 15:45:56 +11:00
ed7ab6cb9e debug: add validate specialisation for pointers 2018-01-01 13:40:34 +11:00
dc010d87be view: add yet more constructors 2017-12-30 13:40:37 +11:00
0f450b5b1c p/socket: correctly iterate through name lookups 2017-12-30 13:40:04 +11:00
52aa37dbf7 m/b/circular: add pointer rebalancing operation 2017-12-30 13:39:42 +11:00
dd69da09c3 m/b/circular: template based on data type 2017-12-30 13:39:12 +11:00
59b21e67dd time: more inline implementation into the header 2017-12-30 13:38:11 +11:00
f2fa90d043 io: return views from write wrappers 2017-12-28 17:50:38 +11:00
f94be34ae4 view: add more constructor variants 2017-12-28 17:50:37 +11:00
27a93c0780 traits: add is_contiguous query for containers 2017-12-28 17:50:37 +11:00
d8f3469987 uri: move component queries entirely into header 2017-12-26 17:34:08 +11:00
d86c8b5b2b uri: define more constructors 2017-12-26 17:34:08 +11:00
9704387fdc view: use auto return type for indexing 2017-12-26 17:34:08 +11:00
1123cfe409 view: add unused_result warning to redim 2017-12-26 17:34:08 +11:00
e1a41c64de view: add increment and decrement methods 2017-12-26 17:34:08 +11:00
a67069a333 view: move ostream operator into header 2017-12-26 17:34:08 +11:00
dc51fa2ed0 view: char constructor shouldn't include null characters 2017-12-26 17:34:08 +11:00
14d3169c26 rfc3986: don't enforce actions for rules
some users may not care about actions for the top level rules so we
shouldn't enforce them.
2017-12-26 17:34:08 +11:00
a979b253f5 socket: correctly iterate over lookup entries 2017-12-26 17:27:36 +11:00
39894b5619 fd: add read/write methods for views 2017-12-26 17:26:53 +11:00
fe979fc2a9 fd: add reset and release methods 2017-12-26 17:25:58 +11:00
ac685cfdd2 io: expose file-object variant of draining write 2017-12-26 17:24:42 +11:00
ce64396da4 posix/socket: add a convenience wrapper for sockets 2017-12-22 18:38:30 +11:00
cb9e9afcd3 uri: add an `all' accessor for the entire string 2017-12-22 18:37:11 +11:00
d1649d4acf uri: remove componentwise ostream operator
componentwise output was a surprising behaviour for what is sometimes a
string-like object. users can elect to write the entire string via all()
or the components manually as required.
2017-12-22 18:35:47 +11:00
a6af7a8657 posix/fd: add explicit native conversion function 2017-12-22 18:34:30 +11:00
d80855aedf posix/except: add exception class for EAI_* codes 2017-12-22 18:34:00 +11:00
e437913746 encode/base: add initial base64 experiments 2017-12-22 12:37:04 +11:00
02d3b4dd64 iterator: add unequal_iterator
unequal_iterator is a forward iterator that never successfully compares
for equality with other types. useful as the end iterator when one has
an output iterator as the begin iterator of a view.
2017-12-22 12:34:56 +11:00
8d317fd41e view: allow multiple iterator types 2017-12-22 12:34:25 +11:00
cfe1185621 maths: move log2 into header for constexpr 2017-12-22 12:34:14 +11:00
d0d5ae549e uri: extract grammar into contained ragel file
this will allow us to reference the grammar from other grammars, eg http
parsing.
2017-12-20 12:45:05 +11:00
202c22eee8 view: simplify logical comparator implementation
we remove some duplicate and specific logical comparator specialisations
and instead rely on a base view/view comparator implementation by way of
make_view.
2017-12-20 12:31:52 +11:00
cd69bb684a json: use ragel optimisation flags 2017-12-20 12:29:40 +11:00
17f1ca8f93 view: add char-view less-than operator 2017-12-19 18:18:10 +11:00
62d5dfcf64 view: add container/view equality operators 2017-12-19 18:18:10 +11:00
e61c4f6e98 view: add constructors from nullptr_t 2017-12-19 18:18:10 +11:00
36902f1476 parse: add specialisation for int 2017-12-19 18:18:10 +11:00
bfcd63ec65 posix/fd: add read overloads that take char/byte views 2017-12-19 18:18:10 +11:00
e48aebb503 io: remove lvalue write function
writing arbitrary lvalues is incredibly dangerous if we don't have total
coverage of suitable overloads. eg, we have accidentally written string
objects to file descriptors.

instead we prefer byte/char views which the user can create as desired.
there's a little more cognitive overhead here, but it's substantially
less dangerous in casual usage.
2017-12-19 18:18:10 +11:00