diff options
author | Jens Geyer <jensg@apache.org> | 2014-08-01 22:25:51 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2014-08-01 22:25:51 +0200 |
commit | 790a3881b2bd8d0e0f868e9f28205ea60cfb0f2d (patch) | |
tree | bcd3431d7d59068ec5be496f5744bea520a5b845 | |
parent | 57e68b2500ca941e313651370ac4d52139a060eb (diff) | |
download | thrift-hier.tar.gz |
THRIFT-2621 Add basic default hash code method to pythonhier
Client: Python
Patch: Kishor Patil & Jens Geyer
-rw-r--r-- | compiler/cpp/src/generate/t_py_generator.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc index 5d23366a4..4d155e09b 100644 --- a/compiler/cpp/src/generate/t_py_generator.cc +++ b/compiler/cpp/src/generate/t_py_generator.cc @@ -797,6 +797,17 @@ void t_py_generator::generate_py_struct_definition(ofstream& out, endl; } + out << indent() << "def __hash__(self):" << endl; + indent_up(); + indent(out) << "value = PYTHONHASHSEED" << endl; + for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) { + indent(out) << "value = (value * 31) ^ hash(self." << (*m_iter)->get_name() + ")" << endl; + } + indent(out) << "return value" << endl; + indent_down(); + out << endl; + + if (!gen_slots_) { // Printing utilities so that on the command line thrift // structs look pretty like dictionaries |