| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| use { |
| crate::utils::{self, Either, WatchOrSetResult}, |
| fidl_fuchsia_settings::{NightModeProxy, NightModeSettings}, |
| }; |
| |
| pub async fn command(proxy: NightModeProxy, night_mode_enabled: Option<bool>) -> WatchOrSetResult { |
| Ok(if let Some(night_mode_enabled_value) = night_mode_enabled { |
| let mut settings = NightModeSettings::EMPTY; |
| settings.night_mode_enabled = Some(night_mode_enabled_value); |
| |
| let mutate_result = proxy.set(settings).await?; |
| Either::Set(match mutate_result { |
| Ok(_) => { |
| format!("Successfully set night_mode_enabled to {}", night_mode_enabled_value) |
| } |
| Err(err) => format!("{:#?}", err), |
| }) |
| } else { |
| Either::Watch(utils::watch_to_stream(proxy, |p| p.watch())) |
| }) |
| } |