Esempio n. 1
0
File: Dump.cpp Progetto: 1Hgm/folly
static void bserEncode(dynamic const& dyn,
                       QueueAppender& appender,
                       const serialization_opts& opts) {
  switch (dyn.type()) {
    case dynamic::Type::NULLT:
      appender.write((int8_t)BserType::Null);
      return;
    case dynamic::Type::BOOL:
      appender.write(
          (int8_t)(dyn.getBool() ? BserType::True : BserType::False));
      return;
    case dynamic::Type::DOUBLE: {
      double dval = dyn.getDouble();
      appender.write((int8_t)BserType::Real);
      appender.write(dval);
      return;
    }
    case dynamic::Type::INT64:
      bserEncodeInt(dyn.getInt(), appender);
      return;
    case dynamic::Type::OBJECT:
      bserEncodeObject(dyn, appender, opts);
      return;
    case dynamic::Type::ARRAY:
      bserEncodeArray(dyn, appender, opts);
      return;
    case dynamic::Type::STRING:
      bserEncodeString(dyn.getString(), appender);
      return;
  }
}
Esempio n. 2
0
 Optional<SchemaError> validate(ValidationContext&,
                                const dynamic& value) const override {
   if (!value.isString() || regex_.empty()) {
     return none;
   }
   if (!boost::regex_search(value.getString().toStdString(), regex_)) {
     return makeError("string matching regex", value);
   }
   return none;
 }
Esempio n. 3
0
 explicit StringPatternValidator(const dynamic& schema) {
   if (schema.isString()) {
     regex_ = boost::regex(schema.getString().toStdString());
   }
 }