pub struct ImageLimits {
pub max_encoded_len: ByteLength,
pub max_decoded_len: ByteLength,
pub allow_path: ImageSourceFilter<PathBuf>,
pub allow_uri: ImageSourceFilter<Uri>,
}
Expand description
Limits for image loading and decoding.
Fields§
§max_encoded_len: ByteLength
Maximum encoded file size allowed.
An error is returned if the file size surpasses this value. If the size can read before read/download the validation happens before download starts, otherwise the error happens when this limit is reached and all already downloaded bytes are dropped.
The default is 100mb
.
max_decoded_len: ByteLength
Maximum decoded file size allowed.
An error is returned if the decoded image memory would surpass the width * height * 4
allow_path: ImageSourceFilter<PathBuf>
Filter for ImageSource::Read
paths.
Only paths allowed by this filter are loaded
allow_uri: ImageSourceFilter<Uri>
Filter for ImageSource::Download
URIs.
Implementations§
source§impl ImageLimits
impl ImageLimits
sourcepub fn none() -> ImageLimits
pub fn none() -> ImageLimits
No size limits, allow all paths and URIs.
sourcepub fn with_max_encoded_len(
self,
max_encoded_size: impl Into<ByteLength>,
) -> ImageLimits
pub fn with_max_encoded_len( self, max_encoded_size: impl Into<ByteLength>, ) -> ImageLimits
Set the max_encoded_len
.
sourcepub fn with_max_decoded_len(
self,
max_decoded_size: impl Into<ByteLength>,
) -> ImageLimits
pub fn with_max_decoded_len( self, max_decoded_size: impl Into<ByteLength>, ) -> ImageLimits
Set the max_decoded_len
.
sourcepub fn with_allow_path(
self,
allow_path: impl Into<ImageSourceFilter<PathBuf>>,
) -> ImageLimits
pub fn with_allow_path( self, allow_path: impl Into<ImageSourceFilter<PathBuf>>, ) -> ImageLimits
Set the allow_path
.
sourcepub fn with_allow_uri(
self,
allow_url: impl Into<ImageSourceFilter<Uri>>,
) -> ImageLimits
pub fn with_allow_uri( self, allow_url: impl Into<ImageSourceFilter<Uri>>, ) -> ImageLimits
Set the allow_uri
.
Trait Implementations§
source§impl Clone for ImageLimits
impl Clone for ImageLimits
source§fn clone(&self) -> ImageLimits
fn clone(&self) -> ImageLimits
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ImageLimits
impl Debug for ImageLimits
source§impl Default for ImageLimits
impl Default for ImageLimits
source§fn default() -> ImageLimits
fn default() -> ImageLimits
100 megabytes encoded and 4096 megabytes decoded (BMP max).
Allows only paths in zng::env::res
, blocks all downloads.
source§impl IntoVar<Option<ImageLimits>> for ImageLimits
impl IntoVar<Option<ImageLimits>> for ImageLimits
source§fn into_var(self) -> <ImageLimits as IntoVar<Option<ImageLimits>>>::Var
fn into_var(self) -> <ImageLimits as IntoVar<Option<ImageLimits>>>::Var
source§fn into_boxed_var(self) -> Box<dyn VarBoxed<T>>where
Self: Sized,
fn into_boxed_var(self) -> Box<dyn VarBoxed<T>>where
Self: Sized,
BoxedVar<T>
. Read moresource§impl PartialEq for ImageLimits
impl PartialEq for ImageLimits
impl IntoValue<Option<ImageLimits>> for ImageLimits
impl StructuralPartialEq for ImageLimits
Auto Trait Implementations§
impl Freeze for ImageLimits
impl !RefUnwindSafe for ImageLimits
impl Send for ImageLimits
impl Sync for ImageLimits
impl Unpin for ImageLimits
impl !UnwindSafe for ImageLimits
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
source§impl<T> AnyVarValue for Twhere
T: VarValue,
impl<T> AnyVarValue for Twhere
T: VarValue,
source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
dyn Any
methods.source§fn clone_boxed(&self) -> Box<dyn AnyVarValue>
fn clone_boxed(&self) -> Box<dyn AnyVarValue>
source§fn clone_boxed_var(&self) -> Box<dyn AnyVar>
fn clone_boxed_var(&self) -> Box<dyn AnyVar>
LocalVar<Self>
.source§fn eq_any(&self, other: &(dyn AnyVarValue + 'static)) -> bool
fn eq_any(&self, other: &(dyn AnyVarValue + 'static)) -> bool
self
equals other
.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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> FsChangeNote for T
impl<T> FsChangeNote for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian()
.