[librsvg] Add one-line descriptions of each module
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] Add one-line descriptions of each module
- Date: Mon, 16 Dec 2019 23:04:57 +0000 (UTC)
commit cb573794da0d832e522e0239c55344b5695c1f33
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Dec 16 17:03:58 2019 -0600
Add one-line descriptions of each module
So that
https://gnome.pages.gitlab.gnome.org/librsvg/doc/rsvg_internals/index.html
won't look so empty.
rsvg_internals/src/allowed_url.rs | 2 ++
rsvg_internals/src/angle.rs | 2 ++
rsvg_internals/src/aspect_ratio.rs | 2 +-
rsvg_internals/src/bbox.rs | 2 ++
rsvg_internals/src/clip_path.rs | 2 ++
rsvg_internals/src/color.rs | 2 ++
rsvg_internals/src/cond.rs | 2 ++
rsvg_internals/src/coord_units.rs | 2 ++
rsvg_internals/src/dasharray.rs | 2 ++
rsvg_internals/src/document.rs | 2 ++
rsvg_internals/src/dpi.rs | 2 ++
rsvg_internals/src/drawing_ctx.rs | 2 ++
rsvg_internals/src/error.rs | 2 ++
rsvg_internals/src/filter.rs | 2 ++
rsvg_internals/src/filters/mod.rs | 2 ++
rsvg_internals/src/float_eq_cairo.rs | 2 ++
rsvg_internals/src/font_props.rs | 2 ++
rsvg_internals/src/gradient.rs | 2 ++
rsvg_internals/src/handle.rs | 4 ++++
rsvg_internals/src/image.rs | 2 ++
rsvg_internals/src/io.rs | 2 ++
rsvg_internals/src/iri.rs | 2 ++
rsvg_internals/src/limits.rs | 6 ++++++
rsvg_internals/src/link.rs | 2 ++
rsvg_internals/src/log.rs | 2 ++
rsvg_internals/src/marker.rs | 2 ++
rsvg_internals/src/mask.rs | 2 ++
rsvg_internals/src/number_list.rs | 2 ++
rsvg_internals/src/paint_server.rs | 2 ++
rsvg_internals/src/parsers.rs | 2 ++
rsvg_internals/src/path_builder.rs | 2 ++
rsvg_internals/src/path_parser.rs | 2 ++
rsvg_internals/src/pattern.rs | 2 ++
rsvg_internals/src/properties.rs | 2 ++
rsvg_internals/src/property_defs.rs | 2 ++
rsvg_internals/src/property_macros.rs | 2 ++
rsvg_internals/src/rect.rs | 2 ++
rsvg_internals/src/shapes.rs | 3 +++
rsvg_internals/src/space.rs | 2 ++
rsvg_internals/src/structure.rs | 2 ++
rsvg_internals/src/style.rs | 2 ++
rsvg_internals/src/text.rs | 2 ++
rsvg_internals/src/transform.rs | 2 ++
rsvg_internals/src/unit_interval.rs | 2 ++
rsvg_internals/src/util.rs | 2 ++
rsvg_internals/src/viewbox.rs | 2 ++
rsvg_internals/src/xml.rs | 2 ++
rsvg_internals/src/xml2.rs | 2 +-
rsvg_internals/src/xml2_load.rs | 6 ++++--
49 files changed, 105 insertions(+), 4 deletions(-)
---
diff --git a/rsvg_internals/src/allowed_url.rs b/rsvg_internals/src/allowed_url.rs
index 5d6e8f2f..0cae6700 100644
--- a/rsvg_internals/src/allowed_url.rs
+++ b/rsvg_internals/src/allowed_url.rs
@@ -1,3 +1,5 @@
+//! Determine which URLs are allowed for loading.
+
use std::error::{self, Error};
use std::fmt;
use std::io;
diff --git a/rsvg_internals/src/angle.rs b/rsvg_internals/src/angle.rs
index 7343b628..ebd86d77 100644
--- a/rsvg_internals/src/angle.rs
+++ b/rsvg_internals/src/angle.rs
@@ -1,3 +1,5 @@
+//! CSS angle values.
+
use std::f64::consts::*;
use cssparser::{Parser, Token};
diff --git a/rsvg_internals/src/aspect_ratio.rs b/rsvg_internals/src/aspect_ratio.rs
index e77c6a5e..3cef833d 100644
--- a/rsvg_internals/src/aspect_ratio.rs
+++ b/rsvg_internals/src/aspect_ratio.rs
@@ -1,4 +1,4 @@
-//! Handling of `preserveAspectRatio` values
+//! Handling of `preserveAspectRatio` values.
//!
//! This module handles `preserveAspectRatio` values [per the SVG specification][spec].
//! We have an [`AspectRatio`] struct which encapsulates such a value.
diff --git a/rsvg_internals/src/bbox.rs b/rsvg_internals/src/bbox.rs
index 1912d57c..85238e9d 100644
--- a/rsvg_internals/src/bbox.rs
+++ b/rsvg_internals/src/bbox.rs
@@ -1,3 +1,5 @@
+//! Bounding boxes that know their coordinate space.
+
use cairo;
use crate::rect::{Rect, TransformRect};
diff --git a/rsvg_internals/src/clip_path.rs b/rsvg_internals/src/clip_path.rs
index 3d9225d3..97a512cf 100644
--- a/rsvg_internals/src/clip_path.rs
+++ b/rsvg_internals/src/clip_path.rs
@@ -1,3 +1,5 @@
+//! The `clipPath` element.
+
use cairo;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
diff --git a/rsvg_internals/src/color.rs b/rsvg_internals/src/color.rs
index da7fbbb0..b1d8003a 100644
--- a/rsvg_internals/src/color.rs
+++ b/rsvg_internals/src/color.rs
@@ -1,3 +1,5 @@
+//! CSS color values.
+
use cssparser::{self, Parser};
use libc;
diff --git a/rsvg_internals/src/cond.rs b/rsvg_internals/src/cond.rs
index 76875856..231db0fb 100644
--- a/rsvg_internals/src/cond.rs
+++ b/rsvg_internals/src/cond.rs
@@ -1,3 +1,5 @@
+//! Conditional processing attributes: `requiredExtensions`, `requiredFeatures`, `systemLanguage`.
+
#[allow(unused_imports, deprecated)]
use std::ascii::AsciiExt;
diff --git a/rsvg_internals/src/coord_units.rs b/rsvg_internals/src/coord_units.rs
index fd4a3655..54464e4f 100644
--- a/rsvg_internals/src/coord_units.rs
+++ b/rsvg_internals/src/coord_units.rs
@@ -1,3 +1,5 @@
+//! `userSpaceOnUse` or `objectBoundingBox` values.
+
use cssparser::{CowRcStr, Parser, Token};
use crate::error::ValueErrorKind;
diff --git a/rsvg_internals/src/dasharray.rs b/rsvg_internals/src/dasharray.rs
index 8fe515a5..34d55686 100644
--- a/rsvg_internals/src/dasharray.rs
+++ b/rsvg_internals/src/dasharray.rs
@@ -1,3 +1,5 @@
+//! Parser for the `stroke-dasharray` property.
+
use cssparser::Parser;
use crate::error::*;
diff --git a/rsvg_internals/src/document.rs b/rsvg_internals/src/document.rs
index 0af1ec42..cd893e7b 100644
--- a/rsvg_internals/src/document.rs
+++ b/rsvg_internals/src/document.rs
@@ -1,3 +1,5 @@
+//! Main SVG document structure.
+
use gdk_pixbuf::{PixbufLoader, PixbufLoaderExt};
use gio;
use markup5ever::{LocalName, Namespace, QualName};
diff --git a/rsvg_internals/src/dpi.rs b/rsvg_internals/src/dpi.rs
index f5dec06f..903da987 100644
--- a/rsvg_internals/src/dpi.rs
+++ b/rsvg_internals/src/dpi.rs
@@ -1,3 +1,5 @@
+//! Resolution for rendering (dots per inch = DPI).
+
// This is configurable at runtime
const DEFAULT_DPI_X: f64 = 90.0;
const DEFAULT_DPI_Y: f64 = 90.0;
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index 03728b19..50737b06 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -1,3 +1,5 @@
+//! The main context structure which drives the drawing process.
+
use cairo;
use std::cell::RefCell;
use std::convert::TryFrom;
diff --git a/rsvg_internals/src/error.rs b/rsvg_internals/src/error.rs
index ae55c6b8..52dad80e 100644
--- a/rsvg_internals/src/error.rs
+++ b/rsvg_internals/src/error.rs
@@ -1,3 +1,5 @@
+//! Error types.
+
use std::error::{self, Error};
use std::fmt;
diff --git a/rsvg_internals/src/filter.rs b/rsvg_internals/src/filter.rs
index f9a1541d..16e813e7 100644
--- a/rsvg_internals/src/filter.rs
+++ b/rsvg_internals/src/filter.rs
@@ -1,3 +1,5 @@
+//! The `filter` element.
+
use cairo;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
diff --git a/rsvg_internals/src/filters/mod.rs b/rsvg_internals/src/filters/mod.rs
index b4ae8736..a0417cbe 100644
--- a/rsvg_internals/src/filters/mod.rs
+++ b/rsvg_internals/src/filters/mod.rs
@@ -1,3 +1,5 @@
+//! Entry point for the CSS filters infrastructure.
+
use std::ops::Deref;
use std::time::Instant;
diff --git a/rsvg_internals/src/float_eq_cairo.rs b/rsvg_internals/src/float_eq_cairo.rs
index 0725d743..74a14d9f 100644
--- a/rsvg_internals/src/float_eq_cairo.rs
+++ b/rsvg_internals/src/float_eq_cairo.rs
@@ -1,3 +1,5 @@
+//! Utilities to compare floating-point numbers.
+
use float_cmp::ApproxEq;
// The following are copied from cairo/src/{cairo-fixed-private.h,
diff --git a/rsvg_internals/src/font_props.rs b/rsvg_internals/src/font_props.rs
index e84747f9..bf714ec4 100644
--- a/rsvg_internals/src/font_props.rs
+++ b/rsvg_internals/src/font_props.rs
@@ -1,3 +1,5 @@
+//! CSS font properties.
+
use cssparser::{BasicParseError, Parser, Token};
use crate::drawing_ctx::ViewParams;
diff --git a/rsvg_internals/src/gradient.rs b/rsvg_internals/src/gradient.rs
index 1fa672e1..b780dad1 100644
--- a/rsvg_internals/src/gradient.rs
+++ b/rsvg_internals/src/gradient.rs
@@ -1,3 +1,5 @@
+//! Gradient paint servers; the `linearGradient` and `radialGradient` elements.
+
use cairo;
use cssparser::{self, CowRcStr, Parser, Token};
use markup5ever::{expanded_name, local_name, namespace_url, ns};
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index f4d2e745..face86c2 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -1,3 +1,7 @@
+//! Toplevel handle for a loaded SVG document.
+//!
+//! This module provides the primitives on which the public APIs are implemented.
+
use std::cell::Cell;
use std::ptr;
use std::rc::Rc;
diff --git a/rsvg_internals/src/image.rs b/rsvg_internals/src/image.rs
index f3f65396..c77dd267 100644
--- a/rsvg_internals/src/image.rs
+++ b/rsvg_internals/src/image.rs
@@ -1,3 +1,5 @@
+//! The `image` element.
+
use cairo;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
diff --git a/rsvg_internals/src/io.rs b/rsvg_internals/src/io.rs
index ccd5214d..53b4992f 100644
--- a/rsvg_internals/src/io.rs
+++ b/rsvg_internals/src/io.rs
@@ -1,3 +1,5 @@
+//! Utilities to acquire streams and data from from URLs.
+
use data_url;
use gio::{
diff --git a/rsvg_internals/src/iri.rs b/rsvg_internals/src/iri.rs
index c830812c..f4091be0 100644
--- a/rsvg_internals/src/iri.rs
+++ b/rsvg_internals/src/iri.rs
@@ -1,3 +1,5 @@
+//! CSS funciri values.
+
use cssparser::Parser;
use crate::allowed_url::{Fragment, Href};
diff --git a/rsvg_internals/src/limits.rs b/rsvg_internals/src/limits.rs
index c7ad667a..c1cb3bed 100644
--- a/rsvg_internals/src/limits.rs
+++ b/rsvg_internals/src/limits.rs
@@ -1,3 +1,7 @@
+//! Processing limits to mitigate malicious SVGs.
+
+/// Maximum number of times that elements can be referenced through URL fragments.
+///
/// This is a mitigation for the security-related bugs:
/// https://gitlab.gnome.org/GNOME/librsvg/issues/323
/// https://gitlab.gnome.org/GNOME/librsvg/issues/515
@@ -22,6 +26,8 @@
/// [billion laughs attack]: https://bitbucket.org/tiran/defusedxml
pub const MAX_REFERENCED_ELEMENTS: usize = 500_000;
+/// Maximum number of elements loadable per document.
+///
/// This is a mitigation for SVG files which create millions of elements
/// in an attempt to exhaust memory. We don't allow loading more than
/// this number of elements during the initial streaming load process.
diff --git a/rsvg_internals/src/link.rs b/rsvg_internals/src/link.rs
index 0ad5b6d6..0104dc91 100644
--- a/rsvg_internals/src/link.rs
+++ b/rsvg_internals/src/link.rs
@@ -1,3 +1,5 @@
+//! The `link` element.
+
use markup5ever::{expanded_name, local_name, namespace_url, ns};
use once_cell::sync::Lazy;
use regex::{Captures, Regex};
diff --git a/rsvg_internals/src/log.rs b/rsvg_internals/src/log.rs
index f004a312..346fe25e 100644
--- a/rsvg_internals/src/log.rs
+++ b/rsvg_internals/src/log.rs
@@ -1,3 +1,5 @@
+//! Utilities for logging messages from the library.
+
use once_cell::sync::Lazy;
#[macro_export]
diff --git a/rsvg_internals/src/marker.rs b/rsvg_internals/src/marker.rs
index a396fb0c..4749d535 100644
--- a/rsvg_internals/src/marker.rs
+++ b/rsvg_internals/src/marker.rs
@@ -1,3 +1,5 @@
+//! The `marker` element, and geometry computations for markers.
+
use std::f64::consts::*;
use std::ops::Deref;
diff --git a/rsvg_internals/src/mask.rs b/rsvg_internals/src/mask.rs
index b995151e..746b83ff 100644
--- a/rsvg_internals/src/mask.rs
+++ b/rsvg_internals/src/mask.rs
@@ -1,3 +1,5 @@
+//! The `mask` element.
+
use cairo;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
diff --git a/rsvg_internals/src/number_list.rs b/rsvg_internals/src/number_list.rs
index 7bd00d33..aff2895c 100644
--- a/rsvg_internals/src/number_list.rs
+++ b/rsvg_internals/src/number_list.rs
@@ -1,3 +1,5 @@
+//! CSS number-list values.
+
use cssparser::{Parser, ParserInput};
use crate::parsers::CssParserExt;
diff --git a/rsvg_internals/src/paint_server.rs b/rsvg_internals/src/paint_server.rs
index 54d12c59..8e80b66d 100644
--- a/rsvg_internals/src/paint_server.rs
+++ b/rsvg_internals/src/paint_server.rs
@@ -1,3 +1,5 @@
+//! SVG paint servers.
+
use cssparser::{self, Parser};
use crate::allowed_url::Fragment;
diff --git a/rsvg_internals/src/parsers.rs b/rsvg_internals/src/parsers.rs
index 3f90f03c..a9367ce7 100644
--- a/rsvg_internals/src/parsers.rs
+++ b/rsvg_internals/src/parsers.rs
@@ -1,3 +1,5 @@
+//! The `Parse` trait for CSS properties, and utilities for parsers.
+
use cssparser::{Parser, ParserInput, Token};
use markup5ever::QualName;
diff --git a/rsvg_internals/src/path_builder.rs b/rsvg_internals/src/path_builder.rs
index 819365d5..ea53f2e4 100644
--- a/rsvg_internals/src/path_builder.rs
+++ b/rsvg_internals/src/path_builder.rs
@@ -1,3 +1,5 @@
+//! Representation of Bézier paths.
+
use cairo;
use std::f64;
diff --git a/rsvg_internals/src/path_parser.rs b/rsvg_internals/src/path_parser.rs
index 21665c30..5627fdd7 100644
--- a/rsvg_internals/src/path_parser.rs
+++ b/rsvg_internals/src/path_parser.rs
@@ -1,3 +1,5 @@
+//! Parser for SVG path data.
+
use crate::path_builder::*;
use std::error::Error;
use std::fmt::{self, Display, Formatter};
diff --git a/rsvg_internals/src/pattern.rs b/rsvg_internals/src/pattern.rs
index bfefbe2a..2315fb84 100644
--- a/rsvg_internals/src/pattern.rs
+++ b/rsvg_internals/src/pattern.rs
@@ -1,3 +1,5 @@
+//! The `pattern` element.
+
use cairo;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
use std::cell::RefCell;
diff --git a/rsvg_internals/src/properties.rs b/rsvg_internals/src/properties.rs
index 3a7bf257..ae8a0338 100644
--- a/rsvg_internals/src/properties.rs
+++ b/rsvg_internals/src/properties.rs
@@ -1,3 +1,5 @@
+//! CSS properties, specified values, computed values.
+
use cssparser::{self, DeclarationListParser, Parser, ParserInput};
use markup5ever::{expanded_name, local_name, namespace_url, ns, QualName};
use std::collections::HashSet;
diff --git a/rsvg_internals/src/property_defs.rs b/rsvg_internals/src/property_defs.rs
index da940861..ac6c07e9 100644
--- a/rsvg_internals/src/property_defs.rs
+++ b/rsvg_internals/src/property_defs.rs
@@ -1,3 +1,5 @@
+//! Definitions for CSS property types.
+
use cssparser::{self, Parser, Token};
use crate::error::*;
diff --git a/rsvg_internals/src/property_macros.rs b/rsvg_internals/src/property_macros.rs
index 914af23b..f8745082 100644
--- a/rsvg_internals/src/property_macros.rs
+++ b/rsvg_internals/src/property_macros.rs
@@ -1,3 +1,5 @@
+//! Macros to define CSS properties.
+
pub trait Property<T> {
fn inherits_automatically() -> bool;
fn compute(&self, _: &T) -> Self;
diff --git a/rsvg_internals/src/rect.rs b/rsvg_internals/src/rect.rs
index bbb63a75..c26f77e9 100644
--- a/rsvg_internals/src/rect.rs
+++ b/rsvg_internals/src/rect.rs
@@ -1,3 +1,5 @@
+//! Types for rectangles.
+
use cairo;
mod rect {
diff --git a/rsvg_internals/src/shapes.rs b/rsvg_internals/src/shapes.rs
index cc8bbad6..6656a892 100644
--- a/rsvg_internals/src/shapes.rs
+++ b/rsvg_internals/src/shapes.rs
@@ -1,3 +1,6 @@
+//! Basic SVG shapes: the `path`, `polygon`, `polyline`, `line`,
+//! `rect`, `circle`, `ellipse` elements.
+
use cairo;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
use std::rc::Rc;
diff --git a/rsvg_internals/src/space.rs b/rsvg_internals/src/space.rs
index 4f5eee67..50f52807 100644
--- a/rsvg_internals/src/space.rs
+++ b/rsvg_internals/src/space.rs
@@ -1,3 +1,5 @@
+//! Processing of the `xml:space` attribute.
+
use itertools::Itertools;
pub struct NormalizeDefault {
diff --git a/rsvg_internals/src/structure.rs b/rsvg_internals/src/structure.rs
index c06deaf5..31b9fb34 100644
--- a/rsvg_internals/src/structure.rs
+++ b/rsvg_internals/src/structure.rs
@@ -1,3 +1,5 @@
+//! Structural elements in SVG: the `g`, `switch`, `svg`, `use`, `symbol` elements.
+
use markup5ever::{expanded_name, local_name, namespace_url, ns};
use crate::allowed_url::Fragment;
diff --git a/rsvg_internals/src/style.rs b/rsvg_internals/src/style.rs
index 991456c6..4d2e0be7 100644
--- a/rsvg_internals/src/style.rs
+++ b/rsvg_internals/src/style.rs
@@ -1,3 +1,5 @@
+//! The `style` element.
+
use cssparser::Parser;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
diff --git a/rsvg_internals/src/text.rs b/rsvg_internals/src/text.rs
index 58c43743..7e6eb3e1 100644
--- a/rsvg_internals/src/text.rs
+++ b/rsvg_internals/src/text.rs
@@ -1,3 +1,5 @@
+//! Text elements: `text`, `tspan`, `tref`.
+
use glib::translate::*;
use markup5ever::{expanded_name, local_name, namespace_url, ns};
use pango::{self, FontMapExt};
diff --git a/rsvg_internals/src/transform.rs b/rsvg_internals/src/transform.rs
index 06782231..8076e843 100644
--- a/rsvg_internals/src/transform.rs
+++ b/rsvg_internals/src/transform.rs
@@ -1,3 +1,5 @@
+//! CSS transform values.
+
use cairo;
use std::f64::consts::*;
diff --git a/rsvg_internals/src/unit_interval.rs b/rsvg_internals/src/unit_interval.rs
index 154d2609..fc24b54b 100644
--- a/rsvg_internals/src/unit_interval.rs
+++ b/rsvg_internals/src/unit_interval.rs
@@ -1,3 +1,5 @@
+//! Type for values in the [0.0, 1.0] range.
+
use cssparser::Parser;
use crate::error::*;
diff --git a/rsvg_internals/src/util.rs b/rsvg_internals/src/util.rs
index e8efdd7a..83f52a22 100644
--- a/rsvg_internals/src/util.rs
+++ b/rsvg_internals/src/util.rs
@@ -1,3 +1,5 @@
+//! Miscellaneous utilities.
+
use libc;
use std::borrow::Cow;
diff --git a/rsvg_internals/src/viewbox.rs b/rsvg_internals/src/viewbox.rs
index 0f59c0f8..31557d0f 100644
--- a/rsvg_internals/src/viewbox.rs
+++ b/rsvg_internals/src/viewbox.rs
@@ -1,3 +1,5 @@
+//! Parser for the `viewBox` attribute.
+
use cssparser::Parser;
use crate::error::*;
diff --git a/rsvg_internals/src/xml.rs b/rsvg_internals/src/xml.rs
index 825a5923..49cbf7df 100644
--- a/rsvg_internals/src/xml.rs
+++ b/rsvg_internals/src/xml.rs
@@ -1,3 +1,5 @@
+//! The main XML parser.
+
use crate::xml_rs::{reader::XmlEvent, ParserConfig};
use encoding::label::encoding_from_whatwg_label;
use encoding::DecoderTrap;
diff --git a/rsvg_internals/src/xml2.rs b/rsvg_internals/src/xml2.rs
index 05118213..fc8da338 100644
--- a/rsvg_internals/src/xml2.rs
+++ b/rsvg_internals/src/xml2.rs
@@ -1,4 +1,4 @@
-// This is a hand-written binding to the very minimal part of libxml2 that we need.
+//! Hand-written binding to the very minimal part of libxml2 that we need.
#![allow(non_snake_case, non_camel_case_types)]
#![cfg_attr(rustfmt, rustfmt_skip)]
diff --git a/rsvg_internals/src/xml2_load.rs b/rsvg_internals/src/xml2_load.rs
index 09d6c36a..99fa0514 100644
--- a/rsvg_internals/src/xml2_load.rs
+++ b/rsvg_internals/src/xml2_load.rs
@@ -1,5 +1,7 @@
-// This file provides functions to create a libxml2 xmlParserCtxtPtr, configured
-// to read from a gio::InputStream, and to maintain its loading data in an XmlState.
+//! Glue between the libxml2 API and our xml parser module.
+//!
+//! This file provides functions to create a libxml2 xmlParserCtxtPtr, configured
+//! to read from a gio::InputStream, and to maintain its loading data in an XmlState.
use gio;
use gio::prelude::*;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]