Commit Graph

94 Commits

Author SHA1 Message Date
f6056153e3 rename root namespace from util to cruft
This places, at long last, the core library code into the same namespace
as the extended library code.
2018-08-05 14:42:02 +10:00
803acc9a87 relicense under MPL-2.0 2018-08-04 15:14:06 +10:00
c6760c8566 view: don't over qualify the array deduction guide 2018-08-03 16:50:29 +10:00
0cea64fa14 view: disable trivally copyable type warnings in util::read 2018-08-02 00:51:01 +10:00
20df746217 view: don't enforce constness of view iterators in util::read 2018-08-01 20:58:43 +10:00
e92f0dc337 view: add 'read' operation complementing 'extract' 2018-08-01 14:23:09 +10:00
08d8eb942d view: add iterator intersection test 2018-08-01 13:10:43 +10:00
47c912e5e2 view: avoid alignment warnings for view extraction
It is assumed the user is on top of this.
2018-08-01 13:10:11 +10:00
4b9b292848 view: add more assertions for valid consume parameters 2018-08-01 13:09:32 +10:00
5724de752e view: add head/tail accessors that return truncated subviews 2018-08-01 13:09:15 +10:00
2c47a3654d view: add a method to extract type cast bytes from a view 2018-07-30 14:03:02 +10:00
ab495bb0f7 view: reduce ambiguity in make_byte_view 2018-07-30 13:52:25 +10:00
d2b36ebded view: parameterise make_byte_view 2018-07-27 18:28:56 +10:00
f42ae40fcb view: allow arbitrary index types for slice and consume 2018-07-24 15:49:38 +10:00
00651cab7c view: correct constness of make_byte_view 2018-07-18 15:20:42 +10:00
80bc988466 view: add deductions for u32 and u64 2018-07-18 15:20:30 +10:00
493c91eace view: add nodiscard to constant split operations
Any time we have a constant operator we need to warn the user if they
thing the operation is mutating and does not make use of the result.
2018-07-13 14:05:54 +10:00
ad90e10c5d view: remove unnecessary enable_if type 2018-05-10 13:31:51 +10:00
df3a556867 view: add convenience wrappers for addition operators 2018-05-10 12:54:45 +10:00
2c919a6582 view: use alignment cast for casting 2018-05-10 12:54:45 +10:00
ec44c68ce6 view: require fully named types for casting 2018-05-10 12:54:45 +10:00
29702704fb view: improve template deduction guides 2018-05-10 12:48:20 +10:00
4116442e40 debug: don't rely on format for output
debug is relied upon by a great deal of other units so it's very
difficult to include other popular headers like format.hpp without
triggering cyclic dependencies.
2018-05-10 12:44:03 +10:00
2926776c97 view: use universal references for return types
Reduces the possibility that we dereference a temporary from the
internal iterators.
2018-05-08 21:51:09 +10:00
34fc834a29 view: prefer std::next over std::advance
next is slightly less likely to trigger issues dereferencing a temporary
(since we aren't producing an lvalue).
2018-05-08 21:49:27 +10:00
bfa5700df0 view: add string comparison operators 2018-04-01 14:44:15 +10:00
41cf6c3d51 view: slice should be const 2018-04-01 14:44:08 +10:00
7568e34649 view: don't force const iterators for cbegin/cend 2018-03-23 14:40:40 +11:00
58843fb0c7 view: use trivial constructors and assignment
this allows us to fulfil the requirements of TriviallyCopyable which is
useful particularly in dumb allocators and job queues.
2018-03-23 14:10:57 +11:00
2d7e3e5d7d build: prefer iosfwd over iostream 2018-03-22 16:11:13 +11:00
84f8600f85 view: add const array ref template deduction 2018-03-20 13:35:10 +11:00
7e11707c39 view: remove ambiguous operator-
this operation is identical to the more appropriately named 'consume'
which should be used in its stead.
2018-03-02 12:21:38 +11:00
79d19b4f4f view: add noexcept to data()
This prevents GCC from warning about possible noexcept additions
(-Wnoexcept)
2018-02-26 10:55:10 +11:00
db4f09628f view: add make_byte_view convenience method. 2018-02-01 13:49:28 +11:00
8c8a252d9f build: prefer nodiscard over warn_unused_result 2018-02-01 13:47:42 +11:00
35e3f69ad2 maths, view: rationalise equal,almost_equal,==
views should not do elementwise comparisons for equality operators.
they are pairs of iterators and are only equal if their iterators are
equal.

instead, use `equal` for elementwise equality. we update the name of
exactly_equal to perform this operation too.
2018-01-31 19:33:42 +11:00
6f14c7c65b view: allow implicit conversion from const*const* to const** 2018-01-30 16:25:48 +11:00
32a4aa23e5 view: add slicing operation, stolen from python 2018-01-30 12:53:43 +11:00
b4e242ffd4 Merge remote-tracking branch 'origin/master' 2018-01-16 15:17:25 +11:00
c6d025453a view: avoid signed comparison issues with sizes 2018-01-16 13:31:53 +11:00
09aa86f55f crypto: remove cryptography primitives
This code can now be found in libcruft-crypto. It was removed to prevent
people relying on it, and to improve test iteration times in unoptimised
builds.
2018-01-14 17:13:21 +11:00
681768093e hash: use a consistency, less flexible, interface 2018-01-13 15:24:12 +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
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
dc010d87be view: add yet more constructors 2017-12-30 13:40:37 +11:00
f94be34ae4 view: add more constructor variants 2017-12-28 17:50:37 +11:00
9704387fdc view: use auto return type for indexing 2017-12-26 17:34:08 +11:00