Struct xrust::transform::context::StaticContextBuilder
source · pub struct StaticContextBuilder<F: FnMut(&str) -> Result<(), Error>>(/* private fields */);
Expand description
Builder for a StaticContext. The main feature of the static context is the ability to set up a callback for messages.
use std::rc::Rc;
use xrust::qname::QualifiedName;
use xrust::value::Value;
use xrust::item::{Item, Sequence, SequenceTrait, NodeType};
use xrust::trees::intmuttree::NodeBuilder;
use xrust::transform::Transform;
use xrust::transform::context::{Context, ContextBuilder, StaticContext, StaticContextBuilder};
let mut message = String::from("no message received");
let xform = Transform::LiteralElement(
QualifiedName::new(None, None, String::from("Example")),
Box::new(Transform::SequenceItems(vec![
Transform::Message(
Box::new(Transform::Literal(Rc::new(Item::Value(Value::from("a message from the transformation"))))),
None,
Box::new(Transform::Empty),
Box::new(Transform::Empty),
),
Transform::Literal(Rc::new(Item::Value(Value::from("element content")))),
]))
);
let mut context = ContextBuilder::new()
.result_document(NodeBuilder::new(NodeType::Document).build())
.build();
let mut static_context = StaticContextBuilder::new()
.message(|m| {message = String::from(m); Ok(())})
.build();
let sequence = context.dispatch(&mut static_context, &xform).expect("evaluation failed");
assert_eq!(sequence.to_xml(), "<Example>element content</Example>");
assert_eq!(message, "a message from the transformation")
Implementations§
Auto Trait Implementations§
impl<F> RefUnwindSafe for StaticContextBuilder<F>where
F: RefUnwindSafe,
impl<F> Send for StaticContextBuilder<F>where
F: Send,
impl<F> Sync for StaticContextBuilder<F>where
F: Sync,
impl<F> Unpin for StaticContextBuilder<F>where
F: Unpin,
impl<F> UnwindSafe for StaticContextBuilder<F>where
F: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more