Parsnip
parsing library
|
Schema component for lists. More...
#include <parsnip_schema.h>
Public Types | |
using | size_type = Data::ListType::size_type |
Public Member Functions | |
ListSchema (const ListSchema &from)=default | |
ListSchema (ListSchema &&)=default | |
ListSchema & | operator= (const ListSchema &from)=default |
ListSchema & | operator= (ListSchema &&)=default |
ListSchema (SchemaBaseRef &&, size_type minimum=0, size_type maximum=std::numeric_limits< size_type >::max()) | |
Construct a list schema (move variant). More... | |
ListSchema (const SchemaBase &, size_type minimum=0, size_type maximum=std::numeric_limits< size_type >::max()) | |
Construct a list schema (cppy variant). More... | |
ListSchema (const Parsnip::Data &schema_spec) | |
Construct a list schema from a schema specification. More... | |
virtual ListSchema * | createCopy () const override |
Create an identical, deep copy of the schema. More... | |
virtual void | validate (const Parsnip::Data &entry) const override |
Validate a list: ensure all elements conform to a single schema. | |
virtual bool | operator== (const SchemaBase &other) const override |
Check if two schemas perform the same validation. More... | |
virtual void | mergeSchemas (const SchemaBase &from) override |
Merge elements into the current schema. More... | |
virtual std::ostream & | dump (std::ostream &target, int indent, bool suppress_ident=false) const override |
Render the schema in human-friendly text. More... | |
Public Member Functions inherited from Parsnip::SchemaBase | |
bool | operator!= (const SchemaBase &other) const |
Additional Inherited Members | |
Protected Types inherited from Parsnip::SchemaBase | |
using | StringType = Data::StringType |
using | SchemaRegex = std::basic_regex< StringType::value_type > |
Protected Member Functions inherited from Parsnip::SchemaBase | |
SchemaBase (const SchemaBase &)=default | |
SchemaBase (SchemaBase &&)=default | |
SchemaBase & | operator= (const SchemaBase &)=default |
SchemaBase & | operator= (SchemaBase &&)=default |
SchemaBase (const Parsnip::Data &schema_spec) | |
Construct a schema from a JSON specification. More... | |
void | checkType (Data::Type expected, const Parsnip::Data &entry) const |
Check that Data item is an allowed type. More... | |
bool | isValidlyNull (const Parsnip::Data &entry) const |
Determine if the data is Null and if that is allowed. More... | |
bool | isType (Data::Type expected, const Parsnip::Data &entry) const |
Check if a data object is a particular type. More... | |
Protected Attributes inherited from Parsnip::SchemaBase | |
bool | nullable = false |
If true, element may be null . | |
Schema component for lists.
Note this expects list members to all be uniform element type.
Parsnip::ListSchema::ListSchema | ( | SchemaBaseRef && | from, |
size_type | minimum = 0 , |
||
size_type | maximum = std::numeric_limits<size_type>::max() |
||
) |
Construct a list schema (move variant).
from | A schema to validate the list members. |
minimum | The number of list members mandated. |
maximum | The number of list members allowed. |
Parsnip::ListSchema::ListSchema | ( | const SchemaBase & | member_schema, |
size_type | minimum = 0 , |
||
size_type | maximum = std::numeric_limits<size_type>::max() |
||
) |
Construct a list schema (cppy variant).
member_schema | A schema to validate the list members. |
minimum | The number of list members mandated. |
maximum | The number of list members allowed. |
Parsnip::ListSchema::ListSchema | ( | const Parsnip::Data & | schema_spec | ) |
Construct a list schema from a schema specification.
Do nothing.
|
overridevirtual |
Create an identical, deep copy of the schema.
Caller is responsible for deleting it.
Implements Parsnip::SchemaBase.
|
overridevirtual |
Render the schema in human-friendly text.
target | Where to write the schema. |
indent | Amount of indent to use. |
suppress_indent | Flag indicating indent was already performed. |
Implements Parsnip::SchemaBase.
|
overridevirtual |
Merge elements into the current schema.
Merge elements managed by this class.
from | A schema for a valid command command line. |
Various | exceptions. |
Reimplemented from Parsnip::SchemaBase.
|
overridevirtual |
Check if two schemas perform the same validation.
Compare two schemas to see if they determine validity in the same manner.
other | The schema to compare to. |
Reimplemented from Parsnip::SchemaBase.