@@ -22,7 +22,7 @@ namespace eclipse::events {
2222 explicit RequestConfigValueEvent (std::string key, bool internal = false )
2323 : m_key(std::move(key)), m_useInternal(internal) {}
2424 const std::string& getKey () const { return m_key; }
25- T getValue () const { return m_value; }
25+ T&& getValue() { return std::move ( m_value) ; }
2626 bool hasValue () const { return m_hasValue; }
2727 bool getUseInternal () const { return m_useInternal; }
2828
@@ -42,10 +42,10 @@ namespace eclipse::events {
4242 class SetConfigValueEvent : public geode ::Event {
4343 public:
4444 SetConfigValueEvent (std::string key, T value, bool internal = false )
45- : m_key(std::move(key)), m_value(value), m_useInternal(internal) {}
45+ : m_key(std::move(key)), m_value(std::move( value) ), m_useInternal(internal) {}
4646
4747 std::string const & getKey () const { return m_key; }
48- T getValue () const { return m_value; }
48+ T&& getValue() { return std::move ( m_value) ; }
4949 bool getUseInternal () const { return m_useInternal; }
5050
5151 private:
@@ -56,15 +56,16 @@ namespace eclipse::events {
5656
5757}
5858
59- namespace eclipse ::config {
59+ # ifndef ECLIPSE_DONT_DEFINE_IMPLS
6060
61+ namespace eclipse ::config {
6162 // / @brief Get a config value by key from the session storage.
6263 // / @param key The key of the value.
6364 // / @param defaultValue The default value to return if the key doesn't exist.
6465 // / @return The value of the key or the default value if the key doesn't exist.
6566 template <SupportedType T>
6667 T get (std::string key, T defaultValue) {
67- events::RequestConfigValueEvent<T> event (key);
68+ events::RequestConfigValueEvent<T> event (std::move ( key) );
6869 event.post ();
6970 if (event.hasValue ())
7071 return event.getValue ();
@@ -77,7 +78,7 @@ namespace eclipse::config {
7778 // / @return The value of the key or the default value if the key doesn't exist.
7879 template <SupportedType T>
7980 T getInternal (std::string key, T defaultValue) {
80- events::RequestConfigValueEvent<T> event (key, true );
81+ events::RequestConfigValueEvent<T> event (std::move ( key) , true );
8182 event.post ();
8283 if (event.hasValue ())
8384 return event.getValue ();
@@ -89,16 +90,18 @@ namespace eclipse::config {
8990 // / @param value The value to set.
9091 template <SupportedType T>
9192 void set (std::string key, T value) {
92- events::SetConfigValueEvent<T>(key, value, false ).post ();
93+ events::SetConfigValueEvent<T>(std::move ( key), std::move ( value) , false ).post ();
9394 }
9495
9596 // / @brief Set a config value by key in the persistent storage (config.json).
9697 // / @param key The key of the value.
9798 // / @param value The value to set.
9899 template <SupportedType T>
99100 void setInternal (std::string key, T value) {
100- events::SetConfigValueEvent<T>(key, value, true ).post ();
101+ events::SetConfigValueEvent<T>(std::move ( key), std::move ( value) , true ).post ();
101102 }
102103}
103104
105+ #endif // ECLIPSE_DONT_DEFINE_IMPLS
106+
104107#endif // ECLIPSE_CONFIG_HPP
0 commit comments