diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index 534a0e659e..141c650f3b 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -1335,6 +1335,44 @@ impl ClipboardItem { } } +impl From for ClipboardEntry { + fn from(value: ClipboardString) -> Self { + Self::String(value) + } +} + +impl From for ClipboardEntry { + fn from(value: String) -> Self { + Self::from(ClipboardString::from(value)) + } +} + +impl From for ClipboardEntry { + fn from(value: Image) -> Self { + Self::Image(value) + } +} + +impl From for ClipboardItem { + fn from(value: ClipboardEntry) -> Self { + Self { + entries: vec![value], + } + } +} + +impl From for ClipboardItem { + fn from(value: String) -> Self { + Self::from(ClipboardEntry::from(value)) + } +} + +impl From for ClipboardItem { + fn from(value: Image) -> Self { + Self::from(ClipboardEntry::from(value)) + } +} + /// One of the editor's supported image formats (e.g. PNG, JPEG) - used when dealing with images in the clipboard #[derive(Clone, Copy, Debug, Eq, PartialEq, EnumIter, Hash)] pub enum ImageFormat { @@ -1503,3 +1541,12 @@ impl ClipboardString { hasher.finish() } } + +impl From for ClipboardString { + fn from(value: String) -> Self { + Self { + text: value, + metadata: None, + } + } +}