The type of a structure, which contains named, typed, immutable fields. More...
#include <StructureType.h>
 
  
 | Public Member Functions | |
| TypeMap | fields () const override | 
| The fields that objects of this type have.  More... | |
| virtual bool | hasFields () const override | 
| virtual bool | isSubtype (const Type &) const override | 
| virtual void | PrettyPrint (Bytestream &, size_t indent) const override | 
| Print a human-readable representation to an output stream and return that output stream. | |
|  Public Member Functions inherited from fabrique::Type | |
| Type (std::weak_ptr< Type > parent)=delete | |
| TypeContext & | context () const | 
| virtual const std::string | name () const | 
| bool | operator== (const Type &) const | 
| bool | operator!= (const Type &t) const | 
| const PtrVec< Type > & | typeParameters () const | 
| size_t | typeParamCount () const | 
| const Type & | operator[] (size_t i) const | 
| const Type & | Map (TypesMapper, const SourceRange &) const | 
| virtual bool | isSupertype (const Type &) const | 
| operator bool () const | |
| virtual bool | valid () const | 
| virtual bool | isFile () const | 
| virtual bool | isFunction () const | 
| virtual bool | isString () const | 
| virtual bool | isOptional () const | 
| virtual bool | isOrdered () const | 
| virtual bool | canBeNegated () const | 
| virtual const Type & | onAddTo (const Type &) const | 
| virtual const Type & | onPrefixWith (const Type &) const | 
|  Public Member Functions inherited from fabrique::Printable | |
| Printable (const Printable &) | |
| Printable & | operator= (const Printable &) | 
| virtual std::string | str () const | 
| Static Public Member Functions | |
| static StructureType * | Create (const NamedTypeVec &, TypeContext &) | 
|  Static Public Member Functions inherited from fabrique::Type | |
| static const Type & | GetSupertype (const Type &, const Type &) | 
| static const Type & | ListOf (const Type &, const SourceRange &) | 
| static std::string | UntypedPart (std::string typedName) | 
| Friends | |
| class | TypeContext | 
| Additional Inherited Members | |
|  Public Types inherited from fabrique::Type | |
| typedef std::pair< std::string, const Type & > | NamedType | 
| typedef std::vector< NamedType > | NamedTypeVec | 
| typedef StringMap< const Type & > | TypeMap | 
| typedef std::function< PtrVec < Type >const PtrVec< Type > &)> | TypesMapper | 
|  Protected Member Functions inherited from fabrique::Type | |
| Type (const std::string &, const PtrVec< Type > ¶ms, TypeContext &) | |
| virtual Type * | Parameterise (const PtrVec< Type > &, const SourceRange &) const | 
The type of a structure, which contains named, typed, immutable fields.
Definition at line 44 of file StructureType.h.
| 
 | inlineoverridevirtual | 
The fields that objects of this type have.
This can be empty even if hasFields() is true: objects like this one might not happen to have fields while still being the kind of objects that, in general, do (e.g., a struct like args with no members).
Reimplemented from fabrique::Type.
Definition at line 50 of file StructureType.h.