22#define FIREBASE_FIRESTORE_CLIENT_CPP_SRC_INCLUDE_FIREBASE_CSHARP_TYPEMAP_HELPER_H_
33
44#include < string>
5+ #include < utility>
56
67#include " firebase/firestore/document_reference.h"
78#include " firebase/firestore/document_snapshot.h"
@@ -16,18 +17,34 @@ namespace firebase {
1617namespace firestore {
1718namespace csharp {
1819
19- struct TransactionGetResult {
20- DocumentSnapshot snapshot;
21- Error error_code = Error::kErrorUnknown ;
22- std::string error_message;
20+ class TransactionGetResult {
21+ public:
22+ TransactionGetResult (DocumentSnapshot snapshot, Error error_code,
23+ std::string error_message)
24+ : snapshot_(std::move(snapshot)),
25+ error_code_ (error_code),
26+ error_message_(std::move(error_message)) {}
27+
28+ DocumentSnapshot TakeSnapshot () { return std::move (snapshot_); }
29+
30+ Error error_code () const { return error_code_; }
31+
32+ const std::string& error_message () const { return error_message_; }
33+
34+ private:
35+ DocumentSnapshot snapshot_;
36+ Error error_code_ = Error::kErrorUnknown ;
37+ std::string error_message_;
2338};
2439
2540TransactionGetResult TransactionGet (Transaction* transaction,
2641 const DocumentReference& document) {
27- TransactionGetResult result;
28- result.snapshot =
29- transaction->Get (document, &result.error_code , &result.error_message );
30- return result;
42+ Error error_code = Error::kErrorUnknown ;
43+ std::string error_message;
44+ DocumentSnapshot snapshot =
45+ transaction->Get (document, &error_code, &error_message);
46+ return TransactionGetResult (std::move (snapshot), error_code,
47+ std::move (error_message));
3148}
3249
3350} // namespace csharp
0 commit comments