pub(crate) enum Surface {
    Png(ImageSurface, OutputStream),
    Pdf(PdfSurface, Size),
    Ps(PsSurface, Size),
    Svg(SvgSurface),
}

Variants§

§

Png(ImageSurface, OutputStream)

§

Pdf(PdfSurface, Size)

§

Ps(PsSurface, Size)

§

Svg(SvgSurface)

Implementations§

source§

impl Surface

source

pub fn new( format: Format, size: Size, stream: OutputStream, unit: LengthUnit ) -> Result<Self, Error>

source

pub(crate) fn new_for_png( size: Size, stream: OutputStream ) -> Result<Self, Error>

source

pub(crate) fn new_for_pdf( size: Size, stream: OutputStream, version: Option<PdfVersion> ) -> Result<Self, Error>

source

pub(crate) fn new_for_ps( size: Size, stream: OutputStream, eps: bool ) -> Result<Self, Error>

source

pub(crate) fn new_for_svg( size: Size, stream: OutputStream, unit: LengthUnit ) -> Result<Self, Error>

source

pub fn render( &self, renderer: &CairoRenderer<'_>, left: f64, top: f64, final_size: Size, geometry: Rectangle, background_color: Option<Color>, id: Option<&str> ) -> Result<(), Error>

source

pub fn finish(self) -> Result<(), Error>

Methods from Deref<Target = Surface>§

pub fn to_raw_none(&self) -> *mut cairo_surface_t

pub fn create_similar( &self, content: Content, width: i32, height: i32 ) -> Result<Surface, Error>

pub fn create_for_rectangle(&self, bounds: Rectangle) -> Result<Surface, Error>

pub fn mime_data(&self, mime_type: &str) -> Option<Vec<u8>>

pub unsafe fn mime_data_raw(&self, mime_type: &str) -> Option<&[u8]>

pub fn set_mime_data<T>(&self, mime_type: &str, slice: T) -> Result<(), Error>
where T: AsRef<[u8]> + 'static,

pub fn supports_mime_type(&self, mime_type: &str) -> bool

pub fn device(&self) -> Option<Device>

pub fn content(&self) -> Content

pub fn set_device_offset(&self, x_offset: f64, y_offset: f64)

pub fn device_offset(&self) -> (f64, f64)

pub fn set_device_scale(&self, x_scale: f64, y_scale: f64)

pub fn device_scale(&self) -> (f64, f64)

pub fn set_fallback_resolution( &self, x_pixels_per_inch: f64, y_pixels_per_inch: f64 )

pub fn fallback_resolution(&self) -> (f64, f64)

pub fn create_similar_image( &self, format: Format, width: i32, height: i32 ) -> Result<ImageSurface, Error>

pub fn map_to_image( &self, extents: Option<RectangleInt> ) -> Result<MappedImageSurface, Error>

pub fn mark_dirty(&self)

pub fn mark_dirty_rectangle(&self, x: i32, y: i32, width: i32, height: i32)

pub fn status(&self) -> Result<(), Error>

pub fn set_user_data<T>( &self, key: &'static UserDataKey<T>, value: Rc<T> ) -> Result<(), Error>
where T: 'static,

Attach user data to self for the given key.

pub fn user_data<T>(&self, key: &'static UserDataKey<T>) -> Option<Rc<T>>
where T: 'static,

Return the user data previously attached to self with the given key, if any.

pub fn user_data_ptr<T>( &self, key: &'static UserDataKey<T> ) -> Option<NonNull<T>>
where T: 'static,

Return the user data previously attached to self with the given key, if any, without incrementing the reference count.

The pointer is valid when it is returned from this method, until the cairo object that self represents is destroyed or remove_user_data or set_user_data is called with the same key.

pub fn remove_user_data<T>( &self, key: &'static UserDataKey<T> ) -> Result<(), Error>
where T: 'static,

Unattached from self the user data associated with key, if any. If there is no other Rc strong reference, the data is destroyed.

pub fn flush(&self)

pub fn finish(&self)

pub fn type_(&self) -> SurfaceType

pub fn write_to_png<W>(&self, stream: &mut W) -> Result<(), IoError>
where W: Write,

This function writes the surface as a PNG image to the given stream.

If the underlying surface does not support being written as a PNG, this will return [Error::SurfaceTypeMismatch]

pub fn finish_output_stream(&self) -> Result<Box<dyn Any>, StreamWithError>

Finish the surface, then remove and return the output stream if any.

This calls [Surface::finish], to make sure pending writes are done.

This is relevant for surfaces created for example with [crate::PdfSurface::for_stream].

Use Box::downcast to recover the concrete stream type.

§Panics

This method panics if:

  • This method was already called for this surface, or
  • This surface was not created with an output stream in the first place, or
  • A previous write to this surface panicked, or
  • A previous write happened while another write was ongoing, or
  • A write is ongoing now.

The latter two cases can only occur with a pathological output stream type that accesses the same surface again from Write::write_all.

Trait Implementations§

source§

impl AsRef<Surface> for Surface

source§

fn as_ref(&self) -> &Surface

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Deref for Surface

§

type Target = Surface

The resulting type after dereferencing.
source§

fn deref(&self) -> &Surface

Dereferences the value.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.