uint32_t data_type_id() { return ei->TypeId(); }
void update(T d) { ei->Data() = sae::serialization::convert_to_string<T>(d); }
/* return the data rank of this vertex */ std::string data_type_name() { return ei->TypeName(); }
T parse() { T ret = sae::serialization::convert_from_string<T>(ei->Data()); return ret; }
vertex_type target() const { return vertex_type(std::move(ei->Target())); }
vertex_type source() const { return vertex_type(std::move(ei->Source())); }
edge_data_type& data() { return *(edge_data_type*) ei->Data(); }
const edge_data_type& data() const { return *(edge_data_type*) ei->Data(); }