pub struct PersonalThumbnailInstallRequest { /* private fields */ }Expand description
Owned personal-cache install request for async or runtime-specific adapters.
Constructing this request does not perform filesystem I/O. Normalization and installation happen
only when Self::install_path or Self::install_png_bytes is called. Constructing a
ReadablePersonalOriginalIdentity from a local path performs blocking filesystem I/O, so async callers
should do that inside their runtime’s blocking adapter too.
use xdg_thumbnail::{
PersonalCacheRoot, PersonalThumbnailInstallRequest, ReadablePersonalOriginalIdentity, ThumbnailSize,
};
fn spawn_blocking<F, R>(operation: F) -> R
where
F: FnOnce() -> R + Send + 'static,
R: Send + 'static,
{
operation()
}
fn render_thumbnail_png() -> Vec<u8> {
unimplemented!("return PNG bytes produced by the caller's renderer")
}
fn main() -> xdg_thumbnail::Result<()> {
let root = PersonalCacheRoot::resolve_from_env()?;
let rendered_png = render_thumbnail_png();
let installed = spawn_blocking(move || {
let original =
ReadablePersonalOriginalIdentity::from_local_path("/home/alice/Pictures/photo.png")?;
let request = PersonalThumbnailInstallRequest::new(
root,
original,
ThumbnailSize::Normal,
rendered_png,
);
request.install_png_bytes()
})?;
let _path = installed.path();
Ok(())
}Implementations§
Source§impl PersonalThumbnailInstallRequest
impl PersonalThumbnailInstallRequest
Sourcepub fn new(
root: PersonalCacheRoot,
original: ReadablePersonalOriginalIdentity,
size: ThumbnailSize,
rendered_png: Vec<u8>,
) -> Self
pub fn new( root: PersonalCacheRoot, original: ReadablePersonalOriginalIdentity, size: ThumbnailSize, rendered_png: Vec<u8>, ) -> Self
Creates an owned personal-cache install request.
Sourcepub fn install_path(self) -> Result<InstalledThumbnailPath>
pub fn install_path(self) -> Result<InstalledThumbnailPath>
Normalizes rendered PNG data, installs a personal-cache thumbnail, and returns its path.
§Errors
Returns the same errors as PersonalCacheRoot::install_thumbnail_returning_path.
Sourcepub fn install_png_bytes(self) -> Result<InstalledThumbnailPngBytes>
pub fn install_png_bytes(self) -> Result<InstalledThumbnailPngBytes>
Normalizes rendered PNG data, installs a personal-cache thumbnail, and returns final PNG bytes.
§Errors
Returns the same errors as PersonalCacheRoot::install_thumbnail_returning_png_bytes.
Sourcepub fn into_parts(self) -> PersonalThumbnailInstallRequestParts
pub fn into_parts(self) -> PersonalThumbnailInstallRequestParts
Splits this request into its owned parts.
Trait Implementations§
Source§impl PartialEq for PersonalThumbnailInstallRequest
impl PartialEq for PersonalThumbnailInstallRequest
Source§fn eq(&self, other: &PersonalThumbnailInstallRequest) -> bool
fn eq(&self, other: &PersonalThumbnailInstallRequest) -> bool
self and other values to be equal, and is used by ==.impl Eq for PersonalThumbnailInstallRequest
impl StructuralPartialEq for PersonalThumbnailInstallRequest
Auto Trait Implementations§
impl Freeze for PersonalThumbnailInstallRequest
impl RefUnwindSafe for PersonalThumbnailInstallRequest
impl Send for PersonalThumbnailInstallRequest
impl Sync for PersonalThumbnailInstallRequest
impl Unpin for PersonalThumbnailInstallRequest
impl UnsafeUnpin for PersonalThumbnailInstallRequest
impl UnwindSafe for PersonalThumbnailInstallRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more