From b934a2fd83d63fc115c01f959e888c7bc1aa87e4 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Tue, 21 Mar 2023 23:18:56 +0100 Subject: Embed standard fonts in binary --- src/util/buffer.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/util/buffer.rs') diff --git a/src/util/buffer.rs b/src/util/buffer.rs index da12b6cb..23fb9802 100644 --- a/src/util/buffer.rs +++ b/src/util/buffer.rs @@ -1,3 +1,4 @@ +use std::borrow::Cow; use std::fmt::{self, Debug, Formatter}; use std::ops::Deref; use std::sync::Arc; @@ -6,9 +7,14 @@ use comemo::Prehashed; /// A shared buffer that is cheap to clone and hash. #[derive(Clone, Hash, Eq, PartialEq)] -pub struct Buffer(Arc>>); +pub struct Buffer(Arc>>); impl Buffer { + /// Create a buffer from a static byte slice. + pub fn from_static(slice: &'static [u8]) -> Self { + Self(Arc::new(Prehashed::new(Cow::Borrowed(slice)))) + } + /// Return a view into the buffer. pub fn as_slice(&self) -> &[u8] { self @@ -22,13 +28,13 @@ impl Buffer { impl From<&[u8]> for Buffer { fn from(slice: &[u8]) -> Self { - Self(Arc::new(Prehashed::new(slice.to_vec()))) + Self(Arc::new(Prehashed::new(slice.to_vec().into()))) } } impl From> for Buffer { fn from(vec: Vec) -> Self { - Self(Arc::new(Prehashed::new(vec))) + Self(Arc::new(Prehashed::new(vec.into()))) } } -- cgit v1.2.3