CppSerdes  1.0
A serialization/deserialization library designed with embedded systems in mind
serdes_validator.h
Go to the documentation of this file.
1 #ifndef SERDES_VALIDATOR_H_
8 #define SERDES_VALIDATOR_H_
9 
10 #include "bitcpy_common.h"
11 
13 namespace serdes
14 {
19  template <typename FieldType, typename FuncType>
20  struct validator
21  {
22  FieldType field;
23  FuncType validation;
24  template <typename FieldTypeT, typename FuncTypeT>
25 
29  validator(FieldTypeT &&field_arg, FuncTypeT &&validation_arg)
30  : field{std::forward<FieldType>(field_arg)},
31  validation{std::forward<FuncType>(validation_arg)}
32  {
33  }
34  };
35 
42  template <typename FieldType, typename FuncType>
43  validator<FieldType, FuncType> validate(FieldType &&field_arg, FuncType &&validation_arg)
44  {
45  return {std::forward<FieldType>(field_arg), std::forward<FuncType>(validation_arg)};
46  }
47 } // namespace serdes
48 
49 #endif // SERDES_VALIDATOR_H_
bitcpy_common.h
Defines common bitcpy details as well as a info::version number, and bit_length function.
serdes::validator::validator
validator(FieldTypeT &&field_arg, FuncTypeT &&validation_arg)
Construct a new validator object using perfect forwarding.
Definition: serdes_validator.h:29
serdes::validator
a field and its attached functional validation callable object, note that validation will occur after...
Definition: serdes_format_modifiers.h:220
serdes::validate
validator< FieldType, FuncType > validate(FieldType &&field_arg, FuncType &&validation_arg)
wraps a field and validation function together into a validator class object
Definition: serdes_validator.h:43
serdes
CppSerdes library namespace.
Definition: bitcpy_common.h:68