[SourceGenerator] Use inline/constexpr where appropriate

This ensures that constants don't get duplicated each time the header is
included

Change-Id: I61d2e6b709bd3d1340a7a38a73b014a9cc8013dd
Reviewed-on: https://fuchsia-review.googlesource.com/c/cobalt/+/669003
Fuchsia-Auto-Submit: Zach Bush <zmbush@google.com>
Reviewed-by: Cameron Dale <camrdale@google.com>
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
diff --git a/src/bin/config_parser/src/source_generator/cpp.go b/src/bin/config_parser/src/source_generator/cpp.go
index 93cdac2..f309aef 100644
--- a/src/bin/config_parser/src/source_generator/cpp.go
+++ b/src/bin/config_parser/src/source_generator/cpp.go
@@ -84,7 +84,7 @@
 func (_ CPP) writeEnumExport(so *sourceOutputter, enumName, name []string) {
 	enum := toPascalCase(enumName...)
 	variant := toPascalCase(name...)
-	so.writeLineFmt("const %s %s_%s = %s::%s;", enum, enum, variant, enum, variant)
+	so.writeLineFmt("inline constexpr %s %s_%s = %s::%s;", enum, enum, variant, enum, variant)
 }
 
 func (_ CPP) writeTypeAlias(so *sourceOutputter, from, to []string) {
@@ -113,12 +113,12 @@
 
 func (_ CPP) writeConstUint32(so *sourceOutputter, value uint32, name ...string) {
 	name = append([]string{"k"}, name...)
-	so.writeLineFmt("const uint32_t %s = %d;", toCamelCase(name...), value)
+	so.writeLineFmt("inline constexpr uint32_t %s = %d;", toCamelCase(name...), value)
 }
 
 func (_ CPP) writeConstInt64(so *sourceOutputter, value int64, name ...string) {
 	name = append([]string{"k"}, name...)
-	so.writeLineFmt("const int64_t %s = %d;", toCamelCase(name...), value)
+	so.writeLineFmt("inline constexpr int64_t %s = %d;", toCamelCase(name...), value)
 }
 
 func (_ CPP) writeConstMap(so *sourceOutputter, value map[uint32]string, name ...string) {
@@ -139,7 +139,7 @@
 
 func (_ CPP) writeStringConstant(so *sourceOutputter, value string, name ...string) {
 	name = append([]string{"k"}, name...)
-	so.writeLineFmt("const char %s[] = \"%s\";", toCamelCase(name...), value)
+	so.writeLineFmt("inline constexpr char %s[] = \"%s\";", toCamelCase(name...), value)
 }
 
 func (_ CPP) writeStructBegin(so *sourceOutputter, name ...string) {
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h
index 6188800..0c8013d 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden.cb.h
@@ -7,37 +7,37 @@
 
 #include <vector>
 
-const char kCustomerName[] = "the_customer";
-const uint32_t kCustomerId = 10;
-const char kProjectName[] = "the_project";
-const uint32_t kProjectId = 5;
+inline constexpr char kCustomerName[] = "the_customer";
+inline constexpr uint32_t kCustomerId = 10;
+inline constexpr char kProjectName[] = "the_project";
+inline constexpr uint32_t kProjectId = 5;
 
 // Linear bucket constants for linear buckets
-const int64_t kLinearBucketsIntBucketsFloor = 0;
-const uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
-const uint32_t kLinearBucketsIntBucketsStepSize = 5;
+inline constexpr int64_t kLinearBucketsIntBucketsFloor = 0;
+inline constexpr uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
+inline constexpr uint32_t kLinearBucketsIntBucketsStepSize = 5;
 
 // Exponential bucket constants for exponential buckets report
-const int64_t kExponentialBucketsReportIntBucketsFloor = 0;
-const uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
-const uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
-const uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
+inline constexpr int64_t kExponentialBucketsReportIntBucketsFloor = 0;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
 
 // Metric ID Constants
 // the_metric_name
-const uint32_t kTheMetricNameMetricId = 100;
+inline constexpr uint32_t kTheMetricNameMetricId = 100;
 // the_other_metric_name
-const uint32_t kTheOtherMetricNameMetricId = 200;
+inline constexpr uint32_t kTheOtherMetricNameMetricId = 200;
 // event groups
-const uint32_t kEventGroupsMetricId = 300;
+inline constexpr uint32_t kEventGroupsMetricId = 300;
 // linear buckets
-const uint32_t kLinearBucketsMetricId = 400;
+inline constexpr uint32_t kLinearBucketsMetricId = 400;
 // exponential buckets
-const uint32_t kExponentialBucketsMetricId = 500;
+inline constexpr uint32_t kExponentialBucketsMetricId = 500;
 // metric
-const uint32_t kMetricMetricId = 600;
+inline constexpr uint32_t kMetricMetricId = 600;
 // second metric
-const uint32_t kSecondMetricMetricId = 601;
+inline constexpr uint32_t kSecondMetricMetricId = 601;
 
 // Enum for the_other_metric_name (Metric Dimension 0)
 namespace __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__ {
@@ -48,15 +48,15 @@
 };
 }  // __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__
 using TheOtherMetricNameMetricDimension0 = __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__::Enum;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
 
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 using EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
 // Enum for the_project (Metric Dimension A second group)
 namespace __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
@@ -70,10 +70,10 @@
 using TheProjectMetricDimensionASecondGroup = __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension A second group) which has the same event codes
 using EventGroupsMetricDimensionASecondGroup = TheProjectMetricDimensionASecondGroup;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
 // Enum for the_project (Metric Dimension 2)
 namespace __the_project_metric_dimension_2_internal_scope_do_not_use__ {
@@ -87,10 +87,10 @@
 using TheProjectMetricDimension2 = __the_project_metric_dimension_2_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension 2) which has the same event codes
 using EventGroupsMetricDimension2 = TheProjectMetricDimension2;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
 // Enum for the_project (Metric Dimension First)
 namespace __the_project_metric_dimension_first_internal_scope_do_not_use__ {
@@ -104,17 +104,17 @@
 using TheProjectMetricDimensionFirst = __the_project_metric_dimension_first_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension First) which has the same event codes
 using MetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
 using SecondMetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
 // Enum for the_project (Metric Dimension Second)
 namespace __the_project_metric_dimension_second_internal_scope_do_not_use__ {
@@ -128,17 +128,17 @@
 using TheProjectMetricDimensionSecond = __the_project_metric_dimension_second_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension Second) which has the same event codes
 using MetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
 using SecondMetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
 
 struct EventGroupsEventCodes {
   EventGroupsMetricDimensionTheFirstGroup the_first_group;
@@ -179,6 +179,6 @@
 };
 
 // The base64 encoding of the bytes of a serialized CobaltRegistry proto message.
-const char kConfig[] = "Ks4HCgx0aGVfY3VzdG9tZXIQChq7BwoLdGhlX3Byb2plY3QQBRpdCg90aGVfbWV0cmljX25hbWUQChgFIGRiEQoKdGhlX3JlcG9ydBAKGI9OYhYKEHRoZV9vdGhlcl9yZXBvcnQQFBgDcgx0aGVfY3VzdG9tZXJ6C3RoZV9wcm9qZWN0GocBChV0aGVfb3RoZXJfbWV0cmljX25hbWUQChgFIMgBKAFQAWIQCgp0aGVfcmVwb3J0EAoYAXIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdIIBNRILCAASB0FuRXZlbnQSEAgBEgxBbm90aGVyRXZlbnQSEQgCEg1BIHRoaXJkIGV2ZW50GMgBGoUCCgxldmVudCBncm91cHMQChgFIKwCKAFQAWITCgp0aGVfcmVwb3J0EB4YAaABAnIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjsKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdBpNChNleHBvbmVudGlhbCBidWNrZXRzEAoYBSD0A2IUCgZyZXBvcnQQKFIICgYQAxgCIAJyDHRoZV9jdXN0b21lcnoLdGhlX3Byb2plY3QakQEKBm1ldHJpYxAKGAUg2ARyDHRoZV9jdXN0b21lcnoLdGhlX3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpgBCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdIIBLwoFRmlyc3QSBQgBEgFBEgcIAhIDU2V0EgsIAxIHT2ZFdmVudBIJCAQSBUNvZGVzggEyCgZTZWNvbmQSCAgAEgRTb21lEggIBBIETW9yZRIJCAgSBUV2ZW50EgkIEBIFQ29kZXM=";
+inline constexpr char kConfig[] = "Ks4HCgx0aGVfY3VzdG9tZXIQChq7BwoLdGhlX3Byb2plY3QQBRpdCg90aGVfbWV0cmljX25hbWUQChgFIGRiEQoKdGhlX3JlcG9ydBAKGI9OYhYKEHRoZV9vdGhlcl9yZXBvcnQQFBgDcgx0aGVfY3VzdG9tZXJ6C3RoZV9wcm9qZWN0GocBChV0aGVfb3RoZXJfbWV0cmljX25hbWUQChgFIMgBKAFQAWIQCgp0aGVfcmVwb3J0EAoYAXIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdIIBNRILCAASB0FuRXZlbnQSEAgBEgxBbm90aGVyRXZlbnQSEQgCEg1BIHRoaXJkIGV2ZW50GMgBGoUCCgxldmVudCBncm91cHMQChgFIKwCKAFQAWITCgp0aGVfcmVwb3J0EB4YAaABAnIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdIIBRQoPVGhlIEZpcnN0IEdyb3VwEgsIABIHQW5FdmVudBIQCAESDEFub3RoZXJFdmVudBIRCAISDUEgdGhpcmQgZXZlbnQYAoIBOQoOQSBzZWNvbmQgZ3JvdXASCAgBEgRUaGlzEgYIAhICSXMSCwgDEgdhbm90aGVyEggIBBIEVGVzdIIBNRIOCAASClRoaXNNZXRyaWMSCQgCEgVIYXNObxIICAQSBE5hbWUqDgoFSGFzTm8SBUFsaWFzGjsKDmxpbmVhciBidWNrZXRzEAoYBSCQA0IHEgUQjAEYBXIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdBpNChNleHBvbmVudGlhbCBidWNrZXRzEAoYBSD0A2IUCgZyZXBvcnQQKFIICgYQAxgCIAJyDHRoZV9jdXN0b21lcnoLdGhlX3Byb2plY3QakQEKBm1ldHJpYxAKGAUg2ARyDHRoZV9jdXN0b21lcnoLdGhlX3Byb2plY3SCAS8KBUZpcnN0EgUIARIBQRIHCAISA1NldBILCAMSB09mRXZlbnQSCQgEEgVDb2Rlc4IBMgoGU2Vjb25kEggIABIEU29tZRIICAQSBE1vcmUSCQgIEgVFdmVudBIJCBASBUNvZGVzGpgBCg1zZWNvbmQgbWV0cmljEAoYBSDZBHIMdGhlX2N1c3RvbWVyegt0aGVfcHJvamVjdIIBLwoFRmlyc3QSBQgBEgFBEgcIAhIDU2V0EgsIAxIHT2ZFdmVudBIJCAQSBUNvZGVzggEyCgZTZWNvbmQSCAgAEgRTb21lEggIBBIETW9yZRIJCAgSBUV2ZW50EgkIEBIFQ29kZXM=";
 
 #endif  // COBALT_REGISTRY_THE_CUSTOMER_THE_PROJECT_GEN_
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h
index 5c7755f..e302941 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_filtered.cb.h
@@ -7,37 +7,37 @@
 
 #include <vector>
 
-const char kCustomerName[] = "the_customer";
-const uint32_t kCustomerId = 10;
-const char kProjectName[] = "the_project";
-const uint32_t kProjectId = 5;
+inline constexpr char kCustomerName[] = "the_customer";
+inline constexpr uint32_t kCustomerId = 10;
+inline constexpr char kProjectName[] = "the_project";
+inline constexpr uint32_t kProjectId = 5;
 
 // Linear bucket constants for linear buckets
-const int64_t kLinearBucketsIntBucketsFloor = 0;
-const uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
-const uint32_t kLinearBucketsIntBucketsStepSize = 5;
+inline constexpr int64_t kLinearBucketsIntBucketsFloor = 0;
+inline constexpr uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
+inline constexpr uint32_t kLinearBucketsIntBucketsStepSize = 5;
 
 // Exponential bucket constants for exponential buckets report
-const int64_t kExponentialBucketsReportIntBucketsFloor = 0;
-const uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
-const uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
-const uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
+inline constexpr int64_t kExponentialBucketsReportIntBucketsFloor = 0;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
 
 // Metric ID Constants
 // the_metric_name
-const uint32_t kTheMetricNameMetricId = 100;
+inline constexpr uint32_t kTheMetricNameMetricId = 100;
 // the_other_metric_name
-const uint32_t kTheOtherMetricNameMetricId = 200;
+inline constexpr uint32_t kTheOtherMetricNameMetricId = 200;
 // event groups
-const uint32_t kEventGroupsMetricId = 300;
+inline constexpr uint32_t kEventGroupsMetricId = 300;
 // linear buckets
-const uint32_t kLinearBucketsMetricId = 400;
+inline constexpr uint32_t kLinearBucketsMetricId = 400;
 // exponential buckets
-const uint32_t kExponentialBucketsMetricId = 500;
+inline constexpr uint32_t kExponentialBucketsMetricId = 500;
 // metric
-const uint32_t kMetricMetricId = 600;
+inline constexpr uint32_t kMetricMetricId = 600;
 // second metric
-const uint32_t kSecondMetricMetricId = 601;
+inline constexpr uint32_t kSecondMetricMetricId = 601;
 
 // Enum for the_other_metric_name (Metric Dimension 0)
 namespace __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__ {
@@ -48,15 +48,15 @@
 };
 }  // __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__
 using TheOtherMetricNameMetricDimension0 = __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__::Enum;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
 
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 using EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
 // Enum for the_project (Metric Dimension A second group)
 namespace __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
@@ -70,10 +70,10 @@
 using TheProjectMetricDimensionASecondGroup = __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension A second group) which has the same event codes
 using EventGroupsMetricDimensionASecondGroup = TheProjectMetricDimensionASecondGroup;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
 // Enum for the_project (Metric Dimension 2)
 namespace __the_project_metric_dimension_2_internal_scope_do_not_use__ {
@@ -87,10 +87,10 @@
 using TheProjectMetricDimension2 = __the_project_metric_dimension_2_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension 2) which has the same event codes
 using EventGroupsMetricDimension2 = TheProjectMetricDimension2;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
 // Enum for the_project (Metric Dimension First)
 namespace __the_project_metric_dimension_first_internal_scope_do_not_use__ {
@@ -104,17 +104,17 @@
 using TheProjectMetricDimensionFirst = __the_project_metric_dimension_first_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension First) which has the same event codes
 using MetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
 using SecondMetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
 // Enum for the_project (Metric Dimension Second)
 namespace __the_project_metric_dimension_second_internal_scope_do_not_use__ {
@@ -128,17 +128,17 @@
 using TheProjectMetricDimensionSecond = __the_project_metric_dimension_second_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension Second) which has the same event codes
 using MetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
 using SecondMetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
 
 struct EventGroupsEventCodes {
   EventGroupsMetricDimensionTheFirstGroup the_first_group;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h
index a00add6..7c23e50 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_for_testing.cb.h
@@ -7,77 +7,77 @@
 
 #include <vector>
 
-const char kCustomerName[] = "the_customer";
-const uint32_t kCustomerId = 10;
-const char kProjectName[] = "the_project";
-const uint32_t kProjectId = 5;
+inline constexpr char kCustomerName[] = "the_customer";
+inline constexpr uint32_t kCustomerId = 10;
+inline constexpr char kProjectName[] = "the_project";
+inline constexpr uint32_t kProjectId = 5;
 
 // Linear bucket constants for linear buckets
-const int64_t kLinearBucketsIntBucketsFloor = 0;
-const uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
-const uint32_t kLinearBucketsIntBucketsStepSize = 5;
+inline constexpr int64_t kLinearBucketsIntBucketsFloor = 0;
+inline constexpr uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
+inline constexpr uint32_t kLinearBucketsIntBucketsStepSize = 5;
 
 // Exponential bucket constants for exponential buckets report
-const int64_t kExponentialBucketsReportIntBucketsFloor = 0;
-const uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
-const uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
-const uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
+inline constexpr int64_t kExponentialBucketsReportIntBucketsFloor = 0;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
 
 // Metric ID Constants
 // the_metric_name
-const uint32_t kTheMetricNameMetricId = 100;
+inline constexpr uint32_t kTheMetricNameMetricId = 100;
 // the_other_metric_name
-const uint32_t kTheOtherMetricNameMetricId = 200;
+inline constexpr uint32_t kTheOtherMetricNameMetricId = 200;
 // event groups
-const uint32_t kEventGroupsMetricId = 300;
+inline constexpr uint32_t kEventGroupsMetricId = 300;
 // linear buckets
-const uint32_t kLinearBucketsMetricId = 400;
+inline constexpr uint32_t kLinearBucketsMetricId = 400;
 // exponential buckets
-const uint32_t kExponentialBucketsMetricId = 500;
+inline constexpr uint32_t kExponentialBucketsMetricId = 500;
 // metric
-const uint32_t kMetricMetricId = 600;
+inline constexpr uint32_t kMetricMetricId = 600;
 // second metric
-const uint32_t kSecondMetricMetricId = 601;
+inline constexpr uint32_t kSecondMetricMetricId = 601;
 
 // Index into the list of Metrics. Used to look up Metrics in the registry proto directly.
-const uint32_t kTheMetricNameMetricIndex = 0;
-const uint32_t kTheOtherMetricNameMetricIndex = 1;
-const uint32_t kEventGroupsMetricIndex = 2;
-const uint32_t kLinearBucketsMetricIndex = 3;
-const uint32_t kExponentialBucketsMetricIndex = 4;
-const uint32_t kMetricMetricIndex = 5;
-const uint32_t kSecondMetricMetricIndex = 6;
+inline constexpr uint32_t kTheMetricNameMetricIndex = 0;
+inline constexpr uint32_t kTheOtherMetricNameMetricIndex = 1;
+inline constexpr uint32_t kEventGroupsMetricIndex = 2;
+inline constexpr uint32_t kLinearBucketsMetricIndex = 3;
+inline constexpr uint32_t kExponentialBucketsMetricIndex = 4;
+inline constexpr uint32_t kMetricMetricIndex = 5;
+inline constexpr uint32_t kSecondMetricMetricIndex = 6;
 
 // Report ID Constants
 // the_metric_name the_report
-const uint32_t kTheMetricNameTheReportReportId = 10;
+inline constexpr uint32_t kTheMetricNameTheReportReportId = 10;
 // the_metric_name the_other_report
-const uint32_t kTheMetricNameTheOtherReportReportId = 20;
+inline constexpr uint32_t kTheMetricNameTheOtherReportReportId = 20;
 
 // Index into the list of Reports. Used to look up Reports in the registry proto directly.
-const uint32_t kTheMetricNameTheReportReportIndex = 0;
-const uint32_t kTheMetricNameTheOtherReportReportIndex = 1;
+inline constexpr uint32_t kTheMetricNameTheReportReportIndex = 0;
+inline constexpr uint32_t kTheMetricNameTheOtherReportReportIndex = 1;
 
 // Report ID Constants
 // the_other_metric_name the_report
-const uint32_t kTheOtherMetricNameTheReportReportId = 10;
+inline constexpr uint32_t kTheOtherMetricNameTheReportReportId = 10;
 
 // Index into the list of Reports. Used to look up Reports in the registry proto directly.
-const uint32_t kTheOtherMetricNameTheReportReportIndex = 0;
+inline constexpr uint32_t kTheOtherMetricNameTheReportReportIndex = 0;
 
 // Report ID Constants
 // event groups the_report
-const uint32_t kEventGroupsTheReportReportId = 30;
+inline constexpr uint32_t kEventGroupsTheReportReportId = 30;
 
 // Index into the list of Reports. Used to look up Reports in the registry proto directly.
-const uint32_t kEventGroupsTheReportReportIndex = 0;
+inline constexpr uint32_t kEventGroupsTheReportReportIndex = 0;
 
 // Report ID Constants
 // exponential buckets report
-const uint32_t kExponentialBucketsReportReportId = 40;
+inline constexpr uint32_t kExponentialBucketsReportReportId = 40;
 
 // Index into the list of Reports. Used to look up Reports in the registry proto directly.
-const uint32_t kExponentialBucketsReportReportIndex = 0;
+inline constexpr uint32_t kExponentialBucketsReportReportIndex = 0;
 
 // Enum for the_other_metric_name (Metric Dimension 0)
 namespace __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__ {
@@ -88,15 +88,15 @@
 };
 }  // __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__
 using TheOtherMetricNameMetricDimension0 = __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__::Enum;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
 
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 using EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
 // Enum for the_project (Metric Dimension A second group)
 namespace __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
@@ -110,10 +110,10 @@
 using TheProjectMetricDimensionASecondGroup = __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension A second group) which has the same event codes
 using EventGroupsMetricDimensionASecondGroup = TheProjectMetricDimensionASecondGroup;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
 // Enum for the_project (Metric Dimension 2)
 namespace __the_project_metric_dimension_2_internal_scope_do_not_use__ {
@@ -127,10 +127,10 @@
 using TheProjectMetricDimension2 = __the_project_metric_dimension_2_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension 2) which has the same event codes
 using EventGroupsMetricDimension2 = TheProjectMetricDimension2;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
 // Enum for the_project (Metric Dimension First)
 namespace __the_project_metric_dimension_first_internal_scope_do_not_use__ {
@@ -144,17 +144,17 @@
 using TheProjectMetricDimensionFirst = __the_project_metric_dimension_first_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension First) which has the same event codes
 using MetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
 using SecondMetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
 // Enum for the_project (Metric Dimension Second)
 namespace __the_project_metric_dimension_second_internal_scope_do_not_use__ {
@@ -168,17 +168,17 @@
 using TheProjectMetricDimensionSecond = __the_project_metric_dimension_second_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension Second) which has the same event codes
 using MetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
 using SecondMetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
 
 struct EventGroupsEventCodes {
   EventGroupsMetricDimensionTheFirstGroup the_first_group;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps.cb.h
index a984306..72a2dfb 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps.cb.h
@@ -9,37 +9,37 @@
 #include <string>
 #include <vector>
 
-const char kCustomerName[] = "the_customer";
-const uint32_t kCustomerId = 10;
-const char kProjectName[] = "the_project";
-const uint32_t kProjectId = 5;
+inline constexpr char kCustomerName[] = "the_customer";
+inline constexpr uint32_t kCustomerId = 10;
+inline constexpr char kProjectName[] = "the_project";
+inline constexpr uint32_t kProjectId = 5;
 
 // Linear bucket constants for linear buckets
-const int64_t kLinearBucketsIntBucketsFloor = 0;
-const uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
-const uint32_t kLinearBucketsIntBucketsStepSize = 5;
+inline constexpr int64_t kLinearBucketsIntBucketsFloor = 0;
+inline constexpr uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
+inline constexpr uint32_t kLinearBucketsIntBucketsStepSize = 5;
 
 // Exponential bucket constants for exponential buckets report
-const int64_t kExponentialBucketsReportIntBucketsFloor = 0;
-const uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
-const uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
-const uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
+inline constexpr int64_t kExponentialBucketsReportIntBucketsFloor = 0;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
 
 // Metric ID Constants
 // the_metric_name
-const uint32_t kTheMetricNameMetricId = 100;
+inline constexpr uint32_t kTheMetricNameMetricId = 100;
 // the_other_metric_name
-const uint32_t kTheOtherMetricNameMetricId = 200;
+inline constexpr uint32_t kTheOtherMetricNameMetricId = 200;
 // event groups
-const uint32_t kEventGroupsMetricId = 300;
+inline constexpr uint32_t kEventGroupsMetricId = 300;
 // linear buckets
-const uint32_t kLinearBucketsMetricId = 400;
+inline constexpr uint32_t kLinearBucketsMetricId = 400;
 // exponential buckets
-const uint32_t kExponentialBucketsMetricId = 500;
+inline constexpr uint32_t kExponentialBucketsMetricId = 500;
 // metric
-const uint32_t kMetricMetricId = 600;
+inline constexpr uint32_t kMetricMetricId = 600;
 // second metric
-const uint32_t kSecondMetricMetricId = 601;
+inline constexpr uint32_t kSecondMetricMetricId = 601;
 
 // String map for the_other_metric_name (Metric Dimension 0)
 inline const std::map<std::string, uint32_t> kTheOtherMetricNameMetricDimension0NameMap = {
@@ -57,9 +57,9 @@
 };
 }  // __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__
 using TheOtherMetricNameMetricDimension0 = __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__::Enum;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
 
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 using EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0;
@@ -70,9 +70,9 @@
     {"A third event", 2},
 };
 
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
 // String map for the_project (Metric Dimension A second group)
 inline const std::map<std::string, uint32_t> kEventGroupsMetricDimensionASecondGroupNameMap = {
@@ -94,10 +94,10 @@
 using TheProjectMetricDimensionASecondGroup = __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension A second group) which has the same event codes
 using EventGroupsMetricDimensionASecondGroup = TheProjectMetricDimensionASecondGroup;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
 // String map for the_project (Metric Dimension 2)
 inline const std::map<std::string, uint32_t> kEventGroupsMetricDimension2NameMap = {
@@ -118,10 +118,10 @@
 using TheProjectMetricDimension2 = __the_project_metric_dimension_2_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension 2) which has the same event codes
 using EventGroupsMetricDimension2 = TheProjectMetricDimension2;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
 // String map for the_project (Metric Dimension First)
 inline const std::map<std::string, uint32_t> kMetricMetricDimensionFirstNameMap = {
@@ -143,10 +143,10 @@
 using TheProjectMetricDimensionFirst = __the_project_metric_dimension_first_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension First) which has the same event codes
 using MetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
 using SecondMetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
@@ -158,10 +158,10 @@
     {"Codes", 4},
 };
 
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
 // String map for the_project (Metric Dimension Second)
 inline const std::map<std::string, uint32_t> kMetricMetricDimensionSecondNameMap = {
@@ -183,10 +183,10 @@
 using TheProjectMetricDimensionSecond = __the_project_metric_dimension_second_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension Second) which has the same event codes
 using MetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
 using SecondMetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
@@ -198,10 +198,10 @@
     {"Codes", 16},
 };
 
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
 
 struct EventGroupsEventCodes {
   EventGroupsMetricDimensionTheFirstGroup the_first_group;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps_filtered.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps_filtered.cb.h
index c8e7c42..443e632 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps_filtered.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_name_maps_filtered.cb.h
@@ -9,37 +9,37 @@
 #include <string>
 #include <vector>
 
-const char kCustomerName[] = "the_customer";
-const uint32_t kCustomerId = 10;
-const char kProjectName[] = "the_project";
-const uint32_t kProjectId = 5;
+inline constexpr char kCustomerName[] = "the_customer";
+inline constexpr uint32_t kCustomerId = 10;
+inline constexpr char kProjectName[] = "the_project";
+inline constexpr uint32_t kProjectId = 5;
 
 // Linear bucket constants for linear buckets
-const int64_t kLinearBucketsIntBucketsFloor = 0;
-const uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
-const uint32_t kLinearBucketsIntBucketsStepSize = 5;
+inline constexpr int64_t kLinearBucketsIntBucketsFloor = 0;
+inline constexpr uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
+inline constexpr uint32_t kLinearBucketsIntBucketsStepSize = 5;
 
 // Exponential bucket constants for exponential buckets report
-const int64_t kExponentialBucketsReportIntBucketsFloor = 0;
-const uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
-const uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
-const uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
+inline constexpr int64_t kExponentialBucketsReportIntBucketsFloor = 0;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
 
 // Metric ID Constants
 // the_metric_name
-const uint32_t kTheMetricNameMetricId = 100;
+inline constexpr uint32_t kTheMetricNameMetricId = 100;
 // the_other_metric_name
-const uint32_t kTheOtherMetricNameMetricId = 200;
+inline constexpr uint32_t kTheOtherMetricNameMetricId = 200;
 // event groups
-const uint32_t kEventGroupsMetricId = 300;
+inline constexpr uint32_t kEventGroupsMetricId = 300;
 // linear buckets
-const uint32_t kLinearBucketsMetricId = 400;
+inline constexpr uint32_t kLinearBucketsMetricId = 400;
 // exponential buckets
-const uint32_t kExponentialBucketsMetricId = 500;
+inline constexpr uint32_t kExponentialBucketsMetricId = 500;
 // metric
-const uint32_t kMetricMetricId = 600;
+inline constexpr uint32_t kMetricMetricId = 600;
 // second metric
-const uint32_t kSecondMetricMetricId = 601;
+inline constexpr uint32_t kSecondMetricMetricId = 601;
 
 // Enum for the_other_metric_name (Metric Dimension 0)
 namespace __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__ {
@@ -50,9 +50,9 @@
 };
 }  // __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__
 using TheOtherMetricNameMetricDimension0 = __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__::Enum;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
 
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 using EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0;
@@ -63,9 +63,9 @@
     {"A third event", 2},
 };
 
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
 // String map for the_project (Metric Dimension A second group)
 inline const std::map<std::string, uint32_t> kEventGroupsMetricDimensionASecondGroupNameMap = {
@@ -87,10 +87,10 @@
 using TheProjectMetricDimensionASecondGroup = __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension A second group) which has the same event codes
 using EventGroupsMetricDimensionASecondGroup = TheProjectMetricDimensionASecondGroup;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
 // String map for the_project (Metric Dimension 2)
 inline const std::map<std::string, uint32_t> kEventGroupsMetricDimension2NameMap = {
@@ -111,10 +111,10 @@
 using TheProjectMetricDimension2 = __the_project_metric_dimension_2_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension 2) which has the same event codes
 using EventGroupsMetricDimension2 = TheProjectMetricDimension2;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
 // Enum for the_project (Metric Dimension First)
 namespace __the_project_metric_dimension_first_internal_scope_do_not_use__ {
@@ -128,17 +128,17 @@
 using TheProjectMetricDimensionFirst = __the_project_metric_dimension_first_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension First) which has the same event codes
 using MetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
 using SecondMetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
 // Enum for the_project (Metric Dimension Second)
 namespace __the_project_metric_dimension_second_internal_scope_do_not_use__ {
@@ -152,17 +152,17 @@
 using TheProjectMetricDimensionSecond = __the_project_metric_dimension_second_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension Second) which has the same event codes
 using MetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
 using SecondMetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
 
 struct EventGroupsEventCodes {
   EventGroupsMetricDimensionTheFirstGroup the_first_group;
diff --git a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h
index df8b9f6..7dd1290 100644
--- a/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h
+++ b/src/bin/config_parser/src/source_generator/source_generator_test_files/golden_with_ns.cb.h
@@ -8,37 +8,37 @@
 #include <vector>
 
 namespace ns1::ns2 {
-const char kCustomerName[] = "the_customer";
-const uint32_t kCustomerId = 10;
-const char kProjectName[] = "the_project";
-const uint32_t kProjectId = 5;
+inline constexpr char kCustomerName[] = "the_customer";
+inline constexpr uint32_t kCustomerId = 10;
+inline constexpr char kProjectName[] = "the_project";
+inline constexpr uint32_t kProjectId = 5;
 
 // Linear bucket constants for linear buckets
-const int64_t kLinearBucketsIntBucketsFloor = 0;
-const uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
-const uint32_t kLinearBucketsIntBucketsStepSize = 5;
+inline constexpr int64_t kLinearBucketsIntBucketsFloor = 0;
+inline constexpr uint32_t kLinearBucketsIntBucketsNumBuckets = 140;
+inline constexpr uint32_t kLinearBucketsIntBucketsStepSize = 5;
 
 // Exponential bucket constants for exponential buckets report
-const int64_t kExponentialBucketsReportIntBucketsFloor = 0;
-const uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
-const uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
-const uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
+inline constexpr int64_t kExponentialBucketsReportIntBucketsFloor = 0;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsNumBuckets = 3;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsInitialStep = 2;
+inline constexpr uint32_t kExponentialBucketsReportIntBucketsStepMultiplier = 2;
 
 // Metric ID Constants
 // the_metric_name
-const uint32_t kTheMetricNameMetricId = 100;
+inline constexpr uint32_t kTheMetricNameMetricId = 100;
 // the_other_metric_name
-const uint32_t kTheOtherMetricNameMetricId = 200;
+inline constexpr uint32_t kTheOtherMetricNameMetricId = 200;
 // event groups
-const uint32_t kEventGroupsMetricId = 300;
+inline constexpr uint32_t kEventGroupsMetricId = 300;
 // linear buckets
-const uint32_t kLinearBucketsMetricId = 400;
+inline constexpr uint32_t kLinearBucketsMetricId = 400;
 // exponential buckets
-const uint32_t kExponentialBucketsMetricId = 500;
+inline constexpr uint32_t kExponentialBucketsMetricId = 500;
 // metric
-const uint32_t kMetricMetricId = 600;
+inline constexpr uint32_t kMetricMetricId = 600;
 // second metric
-const uint32_t kSecondMetricMetricId = 601;
+inline constexpr uint32_t kSecondMetricMetricId = 601;
 
 // Enum for the_other_metric_name (Metric Dimension 0)
 namespace __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__ {
@@ -49,15 +49,15 @@
 };
 }  // __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__
 using TheOtherMetricNameMetricDimension0 = __the_other_metric_name_metric_dimension_0_internal_scope_do_not_use__::Enum;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
-const TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnEvent = TheOtherMetricNameMetricDimension0::AnEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AnotherEvent = TheOtherMetricNameMetricDimension0::AnotherEvent;
+inline constexpr TheOtherMetricNameMetricDimension0 TheOtherMetricNameMetricDimension0_AThirdEvent = TheOtherMetricNameMetricDimension0::AThirdEvent;
 
 // Alias for event groups (Metric Dimension The First Group) which has the same event codes
 using EventGroupsMetricDimensionTheFirstGroup = TheOtherMetricNameMetricDimension0;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
-const EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnEvent = EventGroupsMetricDimensionTheFirstGroup::AnEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AnotherEvent = EventGroupsMetricDimensionTheFirstGroup::AnotherEvent;
+inline constexpr EventGroupsMetricDimensionTheFirstGroup EventGroupsMetricDimensionTheFirstGroup_AThirdEvent = EventGroupsMetricDimensionTheFirstGroup::AThirdEvent;
 
 // Enum for the_project (Metric Dimension A second group)
 namespace __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__ {
@@ -71,10 +71,10 @@
 using TheProjectMetricDimensionASecondGroup = __the_project_metric_dimension_a_second_group_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension A second group) which has the same event codes
 using EventGroupsMetricDimensionASecondGroup = TheProjectMetricDimensionASecondGroup;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
-const EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_This = EventGroupsMetricDimensionASecondGroup::This;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Is = EventGroupsMetricDimensionASecondGroup::Is;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Another = EventGroupsMetricDimensionASecondGroup::Another;
+inline constexpr EventGroupsMetricDimensionASecondGroup EventGroupsMetricDimensionASecondGroup_Test = EventGroupsMetricDimensionASecondGroup::Test;
 
 // Enum for the_project (Metric Dimension 2)
 namespace __the_project_metric_dimension_2_internal_scope_do_not_use__ {
@@ -88,10 +88,10 @@
 using TheProjectMetricDimension2 = __the_project_metric_dimension_2_internal_scope_do_not_use__::Enum;
 // Alias for event groups (Metric Dimension 2) which has the same event codes
 using EventGroupsMetricDimension2 = TheProjectMetricDimension2;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
-const EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_ThisMetric = EventGroupsMetricDimension2::ThisMetric;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_HasNo = EventGroupsMetricDimension2::HasNo;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Name = EventGroupsMetricDimension2::Name;
+inline constexpr EventGroupsMetricDimension2 EventGroupsMetricDimension2_Alias = EventGroupsMetricDimension2::Alias;
 
 // Enum for the_project (Metric Dimension First)
 namespace __the_project_metric_dimension_first_internal_scope_do_not_use__ {
@@ -105,17 +105,17 @@
 using TheProjectMetricDimensionFirst = __the_project_metric_dimension_first_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension First) which has the same event codes
 using MetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
-const MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_A = MetricMetricDimensionFirst::A;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Set = MetricMetricDimensionFirst::Set;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_OfEvent = MetricMetricDimensionFirst::OfEvent;
+inline constexpr MetricMetricDimensionFirst MetricMetricDimensionFirst_Codes = MetricMetricDimensionFirst::Codes;
 
 // Alias for second metric (Metric Dimension First) which has the same event codes
 using SecondMetricMetricDimensionFirst = TheProjectMetricDimensionFirst;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
-const SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_A = SecondMetricMetricDimensionFirst::A;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Set = SecondMetricMetricDimensionFirst::Set;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_OfEvent = SecondMetricMetricDimensionFirst::OfEvent;
+inline constexpr SecondMetricMetricDimensionFirst SecondMetricMetricDimensionFirst_Codes = SecondMetricMetricDimensionFirst::Codes;
 
 // Enum for the_project (Metric Dimension Second)
 namespace __the_project_metric_dimension_second_internal_scope_do_not_use__ {
@@ -129,17 +129,17 @@
 using TheProjectMetricDimensionSecond = __the_project_metric_dimension_second_internal_scope_do_not_use__::Enum;
 // Alias for metric (Metric Dimension Second) which has the same event codes
 using MetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
-const MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Some = MetricMetricDimensionSecond::Some;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_More = MetricMetricDimensionSecond::More;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Event = MetricMetricDimensionSecond::Event;
+inline constexpr MetricMetricDimensionSecond MetricMetricDimensionSecond_Codes = MetricMetricDimensionSecond::Codes;
 
 // Alias for second metric (Metric Dimension Second) which has the same event codes
 using SecondMetricMetricDimensionSecond = TheProjectMetricDimensionSecond;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
-const SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Some = SecondMetricMetricDimensionSecond::Some;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_More = SecondMetricMetricDimensionSecond::More;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Event = SecondMetricMetricDimensionSecond::Event;
+inline constexpr SecondMetricMetricDimensionSecond SecondMetricMetricDimensionSecond_Codes = SecondMetricMetricDimensionSecond::Codes;
 
 struct EventGroupsEventCodes {
   EventGroupsMetricDimensionTheFirstGroup the_first_group;