During internal team discussion it was decided that we need to create a separate library for common utils that are used among KAGOME, Libp2p and possible scale-codec libraries. In future we may easily extend this library, to more easily use it in our projects
Such library can include the following components:
Upgraded outcome::result
It is recognized by the team, that the way current outcome::result is used limits the ability to properly identify the source of error. Currently, it stores std::error_code inside, while internal error type could be extended to keep information such as:
Textual explanation of happened error
Location of initial error: FILE, LINE params
Context in which error happened such as input params of function that was invoked
etc...
Optional refence
Currently we manually define std::optional<std::reference_wrapper> in many places in the code. It makes sense to define an optional_reference type that would replace std::optional<std::reference_wrapper>
During internal team discussion it was decided that we need to create a separate library for common utils that are used among KAGOME, Libp2p and possible scale-codec libraries. In future we may easily extend this library, to more easily use it in our projects
Such library can include the following components:
Upgraded outcome::result
It is recognized by the team, that the way current outcome::result is used limits the ability to properly identify the source of error. Currently, it stores std::error_code inside, while internal error type could be extended to keep information such as:
Optional refence
Currently we manually define
std::optional<std::reference_wrapper>
in many places in the code. It makes sense to define anoptional_reference
type that would replacestd::optional<std::reference_wrapper>
Buffer, BufferView, Blob
Hex utils
Literals
Literals from common/literals testutil/literals