static VisualElement BuildEnumFieldEditor(EnumValueReference enumConstant, Action <Enum> onNewEnumValue)
        {
            var enumEditor = new EnumField(enumConstant.ValueAsEnum());

            enumEditor.RegisterValueChangedCallback(evt =>
            {
                onNewEnumValue(evt.newValue);
            });
            return(enumEditor);
        }
        static VisualElement BuildSearcherEnumEditor(EnumValueReference enumConstant, Type enumType, Action <Enum> onNewEnumValue)
        {
            var value      = enumConstant.ValueAsEnum();
            var enumEditor = new Button {
                text = value.ToString()
            };

            enumEditor.clickable.clickedWithEventInfo += e =>
            {
                SearcherService.ShowEnumValues("Pick a value", enumType, e.originalMousePosition, (v, i) =>
                {
                    enumEditor.text = v.ToString();
                    onNewEnumValue(v);
                });
            };
            return(enumEditor);
        }