Iros
Loading...
Searching...
No Matches
parser_context.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/concepts/container_of.h
"
4
#include "
di/container/concepts/forward_container.h
"
5
#include "
di/container/string/encoding.h
"
6
#include "
di/meta/core.h
"
7
#include "
di/meta/language.h
"
8
#include "
di/types/size_t.h
"
9
10
namespace
di::concepts
{
11
template
<
typename
T>
12
concept
ParserContext
=
concepts::ContainerOf<T, c32>
&&
concepts::HasEncoding<T>
&&
concepts::ForwardContainer<T>
&&
13
requires
(T& context,
meta::ContainerIterator<T>
it) {
14
typename
T::Error;
15
16
{ context.encoding() } ->
SameAs<meta::Encoding<T>
>;
17
{ context.advance(it) } ->
LanguageVoid
;
18
{ context.make_error() } ->
SameAs<typename T::Error>
;
19
};
20
}
di::concepts::ContainerOf
Definition
container_of.h:9
di::concepts::ForwardContainer
Definition
forward_container.h:8
di::concepts::HasEncoding
Definition
encoding.h:225
di::concepts::LanguageVoid
Definition
core.h:128
di::concepts::ParserContext
Definition
parser_context.h:12
di::concepts::SameAs
Definition
core.h:114
container_of.h
core.h
size_t.h
encoding.h
forward_container.h
language.h
di::concepts
Definition
any_storable.h:9
di::meta::ContainerIterator
decltype(container::begin(util::declval< T & >())) ContainerIterator
Definition
container_iterator.h:8
libs
di
include
di
parser
concepts
parser_context.h
Generated by
1.13.0