[librsvg/librsvg-2.46] (#504): Provide an usage example in the librsvg crate docs
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/librsvg-2.46] (#504): Provide an usage example in the librsvg crate docs
- Date: Thu, 21 Nov 2019 17:00:50 +0000 (UTC)
commit f1482fb6e630839261b34e9a7ff0a2c6863c7395
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Oct 31 09:10:15 2019 -0600
(#504): Provide an usage example in the librsvg crate docs
Fixes https://gitlab.gnome.org/GNOME/librsvg/issues/504
librsvg_crate/example.svg | 1 +
librsvg_crate/src/lib.rs | 58 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+)
---
diff --git a/librsvg_crate/example.svg b/librsvg_crate/example.svg
new file mode 100644
index 00000000..1a6c762d
--- /dev/null
+++ b/librsvg_crate/example.svg
@@ -0,0 +1 @@
+<svg height="144" width="144" xmlns="http://www.w3.org/2000/svg"><path d="m71.05 23.68c-26.06 0-47.27
21.22-47.27 47.27s21.22 47.27 47.27 47.27 47.27-21.22 47.27-47.27-21.22-47.27-47.27-47.27zm-.07 4.2a3.1 3.11
0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1 3.2-3.11zm7.12 5.12a38.27 38.27 0 0 1 26.2
18.66l-3.67 8.28c-.63 1.43.02 3.11 1.44 3.75l7.06 3.13a38.27 38.27 0 0 1 .08 6.64h-3.93c-.39
0-.55.26-.55.64v1.8c0 4.24-2.39 5.17-4.49 5.4-2 .23-4.21-.84-4.49-2.06-1.18-6.63-3.14-8.04-6.24-10.49
3.85-2.44 7.85-6.05 7.85-10.87 0-5.21-3.57-8.49-6-10.1-3.42-2.25-7.2-2.7-8.22-2.7h-40.6a38.27 38.27 0 0 1
21.41-12.08l4.79 5.02c1.08 1.13 2.87 1.18 4 .09zm-44.2 23.02a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22
0 3.11 3.11 0 0 1 3.2-3.11zm74.15.14a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1
3.2-3.11zm-68.29.5h5.42v24.44h-10.94a38.27 38.27 0 0 1 -1.24-14.61l6.7-2.98c1.43-.64 2.08-2.31
1.44-3.74zm22.62.26h12.91c.67 0 4.71.77 4.71 3.8 0 2.51-3.1 3.41-5.65 3
.41h-11.
98zm0 17.56h9.89c.9 0 4.83.26 6.08 5.28.39 1.54 1.26 6.56 1.85 8.17.59 1.8 2.98 5.4 5.53 5.4h16.14a38.27
38.27 0 0 1 -3.54 4.1l-6.57-1.41c-1.53-.33-3.04.65-3.37 2.18l-1.56 7.28a38.27 38.27 0 0 1
-31.91-.15l-1.56-7.28c-.33-1.53-1.83-2.51-3.36-2.18l-6.43 1.38a38.27 38.27 0 0 1 -3.32-3.92h31.27c.35 0
.59-.06.59-.39v-11.06c0-.32-.24-.39-.59-.39h-9.15zm-14.43 25.33a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1
-6.22 0 3.11 3.11 0 0 1 3.2-3.11zm46.05.14a3.11 3.11 0 0 1 3.02 3.11 3.11 3.11 0 0 1 -6.22 0 3.11 3.11 0 0 1
3.2-3.11z"/><path d="m115.68 70.95a44.63 44.63 0 0 1 -44.63 44.63 44.63 44.63 0 0 1 -44.63-44.63 44.63 44.63
0 0 1 44.63-44.63 44.63 44.63 0 0 1 44.63 44.63zm-.84-4.31 6.96 4.31-6.96 4.31 5.98 5.59-7.66 2.87 4.78
6.65-8.09 1.32 3.4 7.46-8.19-.29 1.88 7.98-7.98-1.88.29 8.19-7.46-3.4-1.32 8.09-6.65-4.78-2.87
7.66-5.59-5.98-4.31 6.96-4.31-6.96-5.59 5.98-2.87-7.66-6.65 4.78-1.32-8.09-7.46 3.4.29-8.19-7.98 1.88
1.88-7.98-8.19.29 3.4-7.46-8.09-1.32 4.78-6.65-7.66-2.87 5.98-5.5
9-6.96-4
.31 6.96-4.31-5.98-5.59 7.66-2.87-4.78-6.65 8.09-1.32-3.4-7.46 8.19.29-1.88-7.98 7.98 1.88-.29-8.19 7.46 3.4
1.32-8.09 6.65 4.78 2.87-7.66 5.59 5.98 4.31-6.96 4.31 6.96 5.59-5.98 2.87 7.66 6.65-4.78 1.32 8.09
7.46-3.4-.29 8.19 7.98-1.88-1.88 7.98 8.19-.29-3.4 7.46 8.09 1.32-4.78 6.65 7.66 2.87z" fill-rule="evenodd"
stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/></svg>
\ No newline at end of file
diff --git a/librsvg_crate/src/lib.rs b/librsvg_crate/src/lib.rs
index 207900fb..c12915e2 100644
--- a/librsvg_crate/src/lib.rs
+++ b/librsvg_crate/src/lib.rs
@@ -16,6 +16,64 @@
//! * Get an [`SvgHandle`] from the [`Loader`].
//! * Create a [`CairoRenderer`] for the [`SvgHandle`] and render to a Cairo context.
//!
+//! You can put the following in your `Cargo.toml`:
+//!
+//! ```toml
+//! [dependencies]
+//! librsvg = { git="https://gitlab.gnome.org/GNOME/librsvg" }
+//! cairo-rs = "0.7.0"
+//! glib = "0.8.0" # only if you need streams
+//! gio = { version="0.7.0", features=["v2_48"] } # likewise
+//! ```
+//!
+//! # Example
+//!
+//! ```
+//! use cairo;
+//! use gio;
+//! use glib;
+//!
+//! const WIDTH: i32 = 640;
+//! const HEIGHT: i32 = 480;
+//!
+//! fn main() {
+//! // Loading from a file
+//!
+//! let handle = librsvg::Loader::new().read_path("example.svg").unwrap();
+//!
+//! let surface = cairo::ImageSurface::create(cairo::Format::ARgb32, WIDTH, HEIGHT).unwrap();
+//! let cr = cairo::Context::new(&surface);
+//!
+//! let renderer = librsvg::CairoRenderer::new(&handle);
+//! renderer.render_document(
+//! &cr,
+//! &cairo::Rectangle {
+//! x: 0.0,
+//! y: 0.0,
+//! width: f64::from(WIDTH),
+//! height: f64::from(HEIGHT),
+//! },
+//! ).unwrap();
+//!
+//! // Loading from a static SVG asset
+//!
+//! let bytes = glib::Bytes::from_static(
+//! br#"<?xml version="1.0" encoding="UTF-8"?>
+//! <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
+//! <rect id="foo" x="10" y="10" width="30" height="30"/>
+//! </svg>
+//! "#
+//! );
+//! let stream = gio::MemoryInputStream::new_from_bytes(&bytes);
+//!
+//! let handle = librsvg::Loader::new().read_stream(
+//! &stream,
+//! None::<&gio::File>, // no base file as this document has no references
+//! None::<&gio::Cancellable>, // no cancellable
+//! ).unwrap();
+//! }
+//! ```
+//!
//! [`Loader`]: struct.Loader.html
//! [`SvgHandle`]: struct.SvgHandle.html
//! [`CairoRenderer`]: struct.CairoRenderer.html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]