// AUTOGENERATED BY glean_parser. DO NOT EDIT.
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
#ifndef mozilla_GleanContentsharingMetrics_h
#define mozilla_GleanContentsharingMetrics_h
#include "mozilla/glean/bindings/MetricTypes.h"
namespace mozilla::glean {
namespace collection_share {
/**
* generated from collection_share.cta_clicked
*/
struct CtaClickedExtra {
mozilla::Maybe<nsCString> button;
mozilla::Maybe<bool> signedIn;
std::tuple<nsTArray<nsCString>, nsTArray<nsCString>> ToFfiExtra() const {
nsTArray<nsCString> extraKeys;
nsTArray<nsCString> extraValues;
if (button) {
extraKeys.AppendElement()->AssignASCII("button");
extraValues.EmplaceBack(button.value());
}
if (signedIn) {
extraKeys.AppendElement()->AssignASCII("signed_in");
extraValues.AppendElement()->AssignASCII(signedIn.value() ? "true" : "false");
}
return std::make_tuple(std::move(extraKeys), std::move(extraValues));
}
};
/**
* Recorded when a button is clicked in the share modal. Includes the user signed-in state and the button ID.
*/
constexpr impl::EventMetric<CtaClickedExtra> cta_clicked(403);
/**
* generated from collection_share.dialog_open
*/
struct DialogOpenExtra {
mozilla::Maybe<nsCString> shareType;
mozilla::Maybe<bool> signedIn;
std::tuple<nsTArray<nsCString>, nsTArray<nsCString>> ToFfiExtra() const {
nsTArray<nsCString> extraKeys;
nsTArray<nsCString> extraValues;
if (shareType) {
extraKeys.AppendElement()->AssignASCII("share_type");
extraValues.EmplaceBack(shareType.value());
}
if (signedIn) {
extraKeys.AppendElement()->AssignASCII("signed_in");
extraValues.AppendElement()->AssignASCII(signedIn.value() ? "true" : "false");
}
return std::make_tuple(std::move(extraKeys), std::move(extraValues));
}
};
/**
* Recorded when the share dialog opens. Includes the type of share and the user signed-in state.
*/
constexpr impl::EventMetric<DialogOpenExtra> dialog_open(404);
/**
* generated from collection_share.error
*/
struct ErrorExtra {
mozilla::Maybe<nsCString> errorType;
mozilla::Maybe<uint32_t> statusCode;
std::tuple<nsTArray<nsCString>, nsTArray<nsCString>> ToFfiExtra() const {
nsTArray<nsCString> extraKeys;
nsTArray<nsCString> extraValues;
if (errorType) {
extraKeys.AppendElement()->AssignASCII("error_type");
extraValues.EmplaceBack(errorType.value());
}
if (statusCode) {
extraKeys.AppendElement()->AssignASCII("status_code");
extraValues.AppendElement()->AppendInt(statusCode.value());
}
return std::make_tuple(std::move(extraKeys), std::move(extraValues));
}
};
/**
* Recorded when an error occurs during share creation. For HTTP errors, includes the status code. For non-HTTP errors (e.g. schema validation failure, missing server URL, network error), includes the error type.
*/
constexpr impl::EventMetric<ErrorExtra> error(405);
}
} // namespace mozilla::glean
#endif // mozilla_GleanContentsharingMetrics_h