- Faced link errors stemmed from mismatch of api definitions of absl::node_hash_set. So explicitly mentioned this lib as dependency during linking. This is common case/solution for absl hash set lib's link errors as per community.
- Decided to continued to have wrapper (stringutil), so that in future it's easy if we decided to change implementation; client code is safe. Changed most of the implementations & data structures in stringutil, to use abseil stuffs more.
- Though absl::string_view is suitable for most cases where we want immutable/read-only string structures, limiting to stringutil apis, not changing public API signatures (even though no compliance issue); reason: reduce dependency on abseil libs.
- Abseil specific changes done:
- std::set => absl::node_hash_set
- std::map => absl::node_hash_map
- Using absl alternatives for “SplitStringUsing” API and “StringHolder” class impl.
- Replaced manual impl of prefix and suffix checks with absl::StartsWith() and absl::EndsWith.
- Similarly used absl::StrReplaceAll, absl::StrCat, absl::StrAppend where possible; and for type conversion apis.
- Note: Tried applying parameter packs to replace manually written duplicate ```StrCat``` apis (for accommodating more number of parameters of same type), but it did not go well when different type arguments passed. Eg char, int types to be converted to StringHolder; faced constructor implicit conversion issues.
Note that the metadata files were not uploaded to appspot because they were too
large. Here is the list of the files affected by this change (generated by
Git):
cpp/src/phonenumbers/lite_metadata.cc
cpp/src/phonenumbers/logger.h
cpp/src/phonenumbers/metadata.cc
cpp/src/phonenumbers/phonenumbermatcher.cc
cpp/src/phonenumbers/phonenumberutil.cc
cpp/src/phonenumbers/phonenumberutil.h
cpp/src/phonenumbers/region_code.h
cpp/src/phonenumbers/stringutil.cc
cpp/src/phonenumbers/stringutil.h
cpp/test/phonenumbers/asyoutypeformatter_test.cc
cpp/test/phonenumbers/phonenumbermatcher_test.cc
cpp/test/phonenumbers/phonenumberutil_test.cc
cpp/test/phonenumbers/stringutil_test.cc
This CL also fixes the issue reported by Aaron about the logger being invoked
before it is initialized.
Review URL: https://codereview.appspot.com/5786065