sae::io::EdgeIteratorPtr out_edges() { return vi->OutEdges(); }
vertex_id_type id() const { return vi->GlobalId(); }
sae::io::EdgeIteratorPtr in_edges() { return vi->InEdges(); }
size_t num_in_edges() const { return vi->InEdgeCount(); }
size_t num_out_edges() const { return vi->OutEdgeCount(); }
/* return the data rank of this vertex */ std::string data_type_name() { return vi->TypeName(); }
uint32_t data_type_id() { return vi->TypeId(); }
T parse() { T ret = sae::serialization::convert_from_string<T>(vi->Data()); return ret; }
void update(T d) { vi->Data() = sae::serialization::convert_to_string<T>(d); }
bool operator==(vertex_type& v) const { return vi->GlobalId() == v.vi->GlobalId(); }
bool operator==(vertex_type& v) const { return vi->Id() == v->vi->Id(); }
vertex_id_type id() const { return vi->Id(); }
vertex_data_type& data() { return *((vertex_data_type *) vi->Data()); }
const vertex_data_type& data() const { return *((vertex_data_type *) vi->Data()); }