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