Public Types | Public Member Functions | Private Attributes | Friends | List of all members
ParseResult Struct Reference

Result of parsing (wraps ParseErrorCode) More...

#include <error.h>

Public Types

typedef bool(ParseResult::* BooleanType) () const
 ! Unspecified boolean type More...
 

Public Member Functions

 ParseResult ()
 Default constructor, no error. More...
 
 ParseResult (ParseErrorCode code, size_t offset)
 Constructor to set an error. More...
 
ParseErrorCode Code () const
 Get the error code. More...
 
size_t Offset () const
 Get the error offset, if IsError(), 0 otherwise. More...
 
 operator BooleanType () const
 Explicit conversion to bool, returns true, iff !IsError(). More...
 
bool IsError () const
 Whether the result is an error. More...
 
bool operator== (const ParseResult &that) const
 
bool operator== (ParseErrorCode code) const
 
bool operator!= (const ParseResult &that) const
 
bool operator!= (ParseErrorCode code) const
 
void Clear ()
 Reset error code. More...
 
void Set (ParseErrorCode code, size_t offset=0)
 Update error code and offset. More...
 

Private Attributes

ParseErrorCode code_
 
size_t offset_
 

Friends

bool operator== (ParseErrorCode code, const ParseResult &err)
 
bool operator!= (ParseErrorCode code, const ParseResult &err)
 

Detailed Description

Result of parsing (wraps ParseErrorCode)

ParseResult ok = doc.Parse("[42]");
if (!ok) {
fprintf(stderr, "JSON parse error: %s (%u)",
exit(EXIT_FAILURE);
}
See also
GenericReader::Parse, GenericDocument::Parse

Definition at line 106 of file error.h.

Member Typedef Documentation

typedef bool(ParseResult::* ParseResult::BooleanType) () const

! Unspecified boolean type

Definition at line 108 of file error.h.

Constructor & Destructor Documentation

ParseResult::ParseResult ( )
inline

Default constructor, no error.

Definition at line 111 of file error.h.

111 : code_(kParseErrorNone), offset_(0) {}
No error.
Definition: error.h:65
ParseErrorCode code_
Definition: error.h:139
size_t offset_
Definition: error.h:140
ParseResult::ParseResult ( ParseErrorCode  code,
size_t  offset 
)
inline

Constructor to set an error.

Definition at line 113 of file error.h.

113 : code_(code), offset_(offset) {}
ParseErrorCode code_
Definition: error.h:139
CodeOutputInterface * code
size_t offset_
Definition: error.h:140

Member Function Documentation

void ParseResult::Clear ( )
inline

Reset error code.

Definition at line 134 of file error.h.

134 { Set(kParseErrorNone); }
No error.
Definition: error.h:65
void Set(ParseErrorCode code, size_t offset=0)
Update error code and offset.
Definition: error.h:136
ParseErrorCode ParseResult::Code ( ) const
inline

Get the error code.

Definition at line 116 of file error.h.

116 { return code_; }
ParseErrorCode code_
Definition: error.h:139
bool ParseResult::IsError ( ) const
inline

Whether the result is an error.

Definition at line 123 of file error.h.

123 { return code_ != kParseErrorNone; }
No error.
Definition: error.h:65
ParseErrorCode code_
Definition: error.h:139
size_t ParseResult::Offset ( ) const
inline

Get the error offset, if IsError(), 0 otherwise.

Definition at line 118 of file error.h.

118 { return offset_; }
size_t offset_
Definition: error.h:140
ParseResult::operator BooleanType ( ) const
inline

Explicit conversion to bool, returns true, iff !IsError().

Definition at line 121 of file error.h.

121 { return !IsError() ? &ParseResult::IsError : NULL; }
bool IsError() const
Whether the result is an error.
Definition: error.h:123
bool ParseResult::operator!= ( const ParseResult that) const
inline

Definition at line 129 of file error.h.

129 { return !(*this == that); }
bool ParseResult::operator!= ( ParseErrorCode  code) const
inline

Definition at line 130 of file error.h.

130 { return !(*this == code); }
CodeOutputInterface * code
bool ParseResult::operator== ( const ParseResult that) const
inline

Definition at line 125 of file error.h.

125 { return code_ == that.code_; }
ParseErrorCode code_
Definition: error.h:139
bool ParseResult::operator== ( ParseErrorCode  code) const
inline

Definition at line 126 of file error.h.

126 { return code_ == code; }
ParseErrorCode code_
Definition: error.h:139
CodeOutputInterface * code
void ParseResult::Set ( ParseErrorCode  code,
size_t  offset = 0 
)
inline

Update error code and offset.

Definition at line 136 of file error.h.

136 { code_ = code; offset_ = offset; }
ParseErrorCode code_
Definition: error.h:139
CodeOutputInterface * code
size_t offset_
Definition: error.h:140

Friends And Related Function Documentation

bool operator!= ( ParseErrorCode  code,
const ParseResult err 
)
friend

Definition at line 131 of file error.h.

131 { return err != code; }
CodeOutputInterface * code
bool operator== ( ParseErrorCode  code,
const ParseResult err 
)
friend

Definition at line 127 of file error.h.

127 { return code == err.code_; }
ParseErrorCode code_
Definition: error.h:139
CodeOutputInterface * code

Member Data Documentation

ParseErrorCode ParseResult::code_
private

Definition at line 139 of file error.h.

size_t ParseResult::offset_
private

Definition at line 140 of file error.h.


The documentation for this struct was generated from the following file: