[][src]Struct ammonia::Document

pub struct Document(_);

A sanitized HTML document.

The Document type is an opaque struct representing an HTML fragment that was sanitized by ammonia. It can be converted to a String or written to a Write instance. This allows users to avoid buffering the serialized representation to a String when desired.

This type is opaque to insulate the caller from breaking changes in the html5ever interface.

Note that this type wraps an html5ever DOM tree. ammonia does not support streaming, so the complete fragment needs to be stored in memory during processing. Currently, Document is backed by an html5ever::rcdom::Node object.

Examples

use ammonia::Builder;

let input = "<!-- comments will be stripped -->This is an Ammonia example.";
let output = "This is an Ammonia example.";

let document = Builder::new()
    .clean(input);
assert_eq!(document.to_string(), output);

Methods

impl Document[src]

pub fn to_string(&self) -> String[src]

Serializes a Document instance to a String.

This method returns a String with the sanitized HTML. This is the simplest way to use ammonia.

Examples

use ammonia::Builder;

let input = "Some <style></style>HTML here";
let output = "Some HTML here";

let document = Builder::new()
    .clean(input);
assert_eq!(document.to_string(), output);

pub fn write_to<W>(&self, writer: W) -> Result<()> where
    W: Write
[src]

Serializes a Document instance to a writer.

This method writes the sanitized HTML to a Write instance, avoiding a buffering step.

To avoid consuming the writer, a mutable reference can be passed, like in the example below.

Note that the in-memory representation of Document is larger than the serialized String.

Examples

use ammonia::Builder;

let input = "Some <style></style>HTML here";
let expected = b"Some HTML here";

let document = Builder::new()
    .clean(input);

let mut sanitized = Vec::new();
document.write_to(&mut sanitized)
    .expect("Writing to a string should not fail (except on OOM)");
assert_eq!(sanitized, expected);

Trait Implementations

impl Clone for Document[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl From<Document> for String[src]

impl Debug for Document[src]

impl Display for Document[src]

Auto Trait Implementations

impl !Sync for Document

impl Unpin for Document

impl !Send for Document

impl !UnwindSafe for Document

impl !RefUnwindSafe for Document

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]