inline typename V::SetType FBUnserializer<V>::unserializeSet() {
  p_ += CODE_SIZE;

  // the set size is written so we can reserve it in the set
  // in future. Skip past it for now.
  unserializeInt64();

  typename V::SetType ret = V::createSet();

  size_t code = nextCode();
  while (code != FB_SERIALIZE_STOP) {
    V::setAppend(ret, unserializeThing());
    code = nextCode();
  }
  p_ += CODE_SIZE;
  return ret;
}
inline typename V::SetType FBUnserializer<V>::unserializeSet() {
  p_ += CODE_SIZE;

   
   
  unserializeInt64();

  typename V::SetType ret = V::createSet();

  size_t code = nextCode();
  while (code != FB_SERIALIZE_STOP) {
    V::setAppend(ret, unserializeThing());
    code = nextCode();
  }
  p_ += CODE_SIZE;
  return ret;
}