Struct cairo::PsSurface[][src]

pub struct PsSurface(_);

Implementations

Takes full ownership of the output stream, which is not allowed to borrow any lifetime shorter than 'static.

Because the underlying cairo_surface_t is reference-counted, a lifetime parameter in a Rust wrapper type would not be enough to track how long it can keep writing to the stream.

Allows writing to a borrowed stream. The lifetime of the borrow is not tracked.

Safety

The value that stream points to must live at least until the underlying cairo_surface_t (which maybe be longer then the Rust PdfSurface wrapper, because of reference-counting), or until the output stream is removed from the surface with Surface::finish_output_stream.

Since the former is hard to track for sure, the latter is strongly recommended. The concrete type behind the Box<dyn Any> value returned by finish_output_stream is private, so you won’t be able to downcast it. But removing it anyway ensures that later writes do not go through a dangling pointer.

Methods from Deref<Target = Surface>

Attach user data to self for the given key.

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

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.

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

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 [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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

The resulting type after dereferencing.

Dereferences the value.

Formats the value using the given formatter. Read more

Value type checker.

Get the contained value from a Value. Read more

Returns the type identifier of Self.

Transfer: none. Read more

Transfer: full. Read more

Transfer: container. Read more

Convert a value to a Value.

Returns the type identifer of self. Read more

Convert an Option to a Value.

The type returned in the event of a conversion error.

Performs the conversion.

Type to get the Type from. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Returns a SendValue clone of self.

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.