@@ -116,7 +116,7 @@ pub fn get_clipboard_provider() -> Box<dyn ClipboardProvider> {
118 #[cfg(target_os = "windows")]
118 #[cfg(target_os = "windows")]
119− return Box::new(provider::WindowsProvider::new());
119+ return Box::new(provider::WindowsProvider::default());
121 #[cfg(not(target_os = "windows"))]
121 #[cfg(not(target_os = "windows"))]
122 return Box::new(provider::NopProvider::new());
122 return Box::new(provider::NopProvider::new());
@@ -145,15 +145,15 @@ mod provider {
145 use anyhow::{bail, Context as _, Result};
145 use anyhow::{bail, Context as _, Result};
146 use std::borrow::Cow;
146 use std::borrow::Cow;
148+ #[cfg(not(target_os = "windows"))]
148 #[derive(Debug)]
149 #[derive(Debug)]
149 pub struct NopProvider {
150 pub struct NopProvider {
150 buf: String,
151 buf: String,
151 primary_buf: String,
152 primary_buf: String,
155+ #[cfg(not(target_os = "windows"))]
154 impl NopProvider {
156 impl NopProvider {
156− // Only dead_code on Windows.
157 pub fn new() -> Self {
157 pub fn new() -> Self {
159 buf: String::new(),
159 buf: String::new(),
@@ -162,6 +162,7 @@ mod provider {
165+ #[cfg(not(target_os = "windows"))]
165 impl ClipboardProvider for NopProvider {
166 impl ClipboardProvider for NopProvider {
166 fn name(&self) -> Cow<str> {
167 fn name(&self) -> Cow<str> {
167 Cow::Borrowed("none")
168 Cow::Borrowed("none")
@@ -186,19 +187,8 @@ mod provider {
188 #[cfg(target_os = "windows")]
189 #[cfg(target_os = "windows")]
189− #[derive(Debug)]
190+ #[derive(Default, Debug)]
190− pub struct WindowsProvider {
191+ pub struct WindowsProvider;
191− selection_buf: String,
194− #[cfg(target_os = "windows")]
195− impl WindowsProvider {
196− pub fn new() -> Self {
198− selection_buf: String::new(),
203 #[cfg(target_os = "windows")]
193 #[cfg(target_os = "windows")]
204 impl ClipboardProvider for WindowsProvider {
194 impl ClipboardProvider for WindowsProvider {