mirror of
https://github.com/matrix-construct/construct
synced 2024-09-27 11:18:51 +02:00
ircd:Ⓜ️ Add reverse reflection for event::conforms code.
This commit is contained in:
parent
4f4b53416c
commit
bae8e3b869
2 changed files with 19 additions and 1 deletions
|
@ -150,6 +150,7 @@ struct ircd::m::event::conforms
|
||||||
conforms(const event &);
|
conforms(const event &);
|
||||||
conforms(const event &, const uint64_t &skip);
|
conforms(const event &, const uint64_t &skip);
|
||||||
|
|
||||||
|
static code reflect(const string_view &);
|
||||||
friend string_view reflect(const code &);
|
friend string_view reflect(const code &);
|
||||||
friend std::ostream &operator<<(std::ostream &, const conforms &);
|
friend std::ostream &operator<<(std::ostream &, const conforms &);
|
||||||
};
|
};
|
||||||
|
|
|
@ -553,6 +553,23 @@ catch(const std::out_of_range &e)
|
||||||
return "??????"_sv;
|
return "??????"_sv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ircd::m::event::conforms::code
|
||||||
|
ircd::m::event::conforms::reflect(const string_view &name)
|
||||||
|
{
|
||||||
|
const auto it
|
||||||
|
{
|
||||||
|
std::find(begin(event_conforms_reflects), end(event_conforms_reflects), name)
|
||||||
|
};
|
||||||
|
|
||||||
|
if(it == end(event_conforms_reflects))
|
||||||
|
throw std::out_of_range
|
||||||
|
{
|
||||||
|
"There is no event::conforms code by that name."
|
||||||
|
};
|
||||||
|
|
||||||
|
return code(std::distance(begin(event_conforms_reflects), it));
|
||||||
|
}
|
||||||
|
|
||||||
ircd::m::event::conforms::conforms(const event &e,
|
ircd::m::event::conforms::conforms(const event &e,
|
||||||
const uint64_t &skip)
|
const uint64_t &skip)
|
||||||
:conforms{e}
|
:conforms{e}
|
||||||
|
@ -652,7 +669,7 @@ const
|
||||||
if(begin(buf) != begin(out))
|
if(begin(buf) != begin(out))
|
||||||
consume(buf, copy(buf, " "_sv));
|
consume(buf, copy(buf, " "_sv));
|
||||||
|
|
||||||
consume(buf, copy(buf, reflect(code(i))));
|
consume(buf, copy(buf, m::reflect(code(i))));
|
||||||
}
|
}
|
||||||
|
|
||||||
return { data(out), begin(buf) };
|
return { data(out), begin(buf) };
|
||||||
|
|
Loading…
Reference in a new issue