aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/main.cpp b/src/main.cpp
index fb2e0bf..38fdf7f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -4,13 +4,25 @@
#include <iostream>
#include <string>
-int main() {
+#include <typeinfo>
+
+int main()
+{
using namespace wanda::literals;
using namespace wanda::std_ext;
+ using namespace std::string_literals;
- with("org.gnome.desktop.background"_setting, [](auto & setting){
- with(setting.template get<std::string>("picture-uri"_key), [](auto & value){
- std::cout << value << '\n';
- }) || []{ std::cerr << "No such key!\n"; };
- }) || []{ std::cerr << "No such setting!\n"; };
+ with("org.gnome.desktop.background"_setting, [](auto &setting) {
+ with(setting["picture-uri"_key], [](auto &value) {
+ std::visit([](auto &&value) {
+ using ValueType = std::decay_t<decltype(value)>;
+ if constexpr (std::is_same_v<ValueType, std::string>)
+ {
+ std::cout << value << '\n';
+ }
+ },
+ *value);
+ std::cout << (value = "file:///"s) << '\n';
+ }) || [] { std::cerr << "No such key!\n"; };
+ }) || [] { std::cerr << "No such setting!\n"; };
}