-
Notifications
You must be signed in to change notification settings - Fork 0
API muesli fluent transformable
Defined in header <muesli/fluent/transformable>
template<EncodeFn, DecodeFn, ValueType>
struct transform_codecForward declaration of transform_codec
Applies bidirectional transformation to encode and decode
template<typename EncodeFn, typename DecodeFn> constexpr auto transform(EncodeFn enc, DecodeFn dec) const requires Codec<Derived>Parameters:
-
enc— Transform to apply during encoding -
dec— Transform to apply during decoding
Returns: A transform_codec wrapping this codec
Transforms only during deserialisation (decode)
template<typename DecodeFn> constexpr auto transform_input(DecodeFn dec) const requires Codec<Derived>Parameters:
-
dec— Transform to apply during decoding
Returns: A transform_codec wrapping this codec
Transforms only during serialisation (encode)
template<typename EncodeFn> constexpr auto transform_output(EncodeFn enc) const requires Codec<Derived>Parameters:
-
enc— Transform to apply during encoding
Returns: A transform_codec wrapping this codec
template<Derived>
struct transformableMixin providing transformation methods (.transform(), .transform_input(), .transform_output())
This mixin provides the following transformation capabilities:
- .transform(encode_fn, decode_fn): Apply transforms to both directions
- .transform_input(decode_fn): Only transform during deserialisation
- .transform_output(encode_fn): Only transform during serialisation
Example:
auto codec = muesli::int32_codec
.transform([](int v) { return v * 2; }, // encode
[](int v) { return v / 2; }); // decodeApplies bidirectional transformation to encode and decode
template<typename EncodeFn, typename DecodeFn> constexpr auto transform(EncodeFn enc, DecodeFn dec) const requires Codec<Derived>Parameters:
-
enc— Transform to apply during encoding -
dec— Transform to apply during decoding
Returns: A transform_codec wrapping this codec
Transforms only during deserialisation (decode)
template<typename DecodeFn> constexpr auto transform_input(DecodeFn dec) const requires Codec<Derived>Parameters:
-
dec— Transform to apply during decoding
Returns: A transform_codec wrapping this codec
Transforms only during serialisation (encode)
template<typename EncodeFn> constexpr auto transform_output(EncodeFn enc) const requires Codec<Derived>Parameters:
-
enc— Transform to apply during encoding
Returns: A transform_codec wrapping this codec
auto codec = muesli::int32_codec
.transform([](int v) { return v * 2; }, // encode
[](int v) { return v / 2; }); // decodetemplate<typename EncodeFn, typename DecodeFn> constexpr auto transform(EncodeFn enc, DecodeFn dec) const requires Codec<Derived>Applies bidirectional transformation to encode and decode
| Parameter | Description |
|---|---|
EncodeFn |
Callable(value_type) -> encoded_type |
DecodeFn |
Callable(encoded_type) -> value_type |
-
enc— Transform to apply during encoding -
dec— Transform to apply during decoding
Returns: A transform_codec wrapping this codec
template<typename DecodeFn> constexpr auto transform_input(DecodeFn dec) const requires Codec<Derived>Transforms only during deserialisation (decode)
| Parameter | Description |
|---|---|
DecodeFn |
Callable(encoded_type) -> value_type |
-
dec— Transform to apply during decoding
Returns: A transform_codec wrapping this codec
template<typename EncodeFn> constexpr auto transform_output(EncodeFn enc) const requires Codec<Derived>Transforms only during serialisation (encode)
| Parameter | Description |
|---|---|
EncodeFn |
Callable(value_type) -> encoded_type |
-
enc— Transform to apply during encoding
Returns: A transform_codec wrapping this codec