Struct Draft
pub struct Draft {
pub action_label: String,
pub resource_label: String,
pub description: Option<String>,
pub layout: DraftLayout,
pub fields: Vec<DraftField>,
pub undoable: bool,
}Expand description
An invocation as a person reviews it.
Fields§
§action_label: String§resource_label: String§description: Option<String>§layout: DraftLayout§fields: Vec<DraftField>§undoable: boolWhether the action, once taken, can be undone
(ActionContract::can_be_undone):
a reviewer is told whether it sends something away or changes their
own work.
Implementations§
§impl Draft
impl Draft
pub fn render( descriptor: &ActionDescriptor, arguments: &Map<String, Value>, ) -> Draft
pub fn role(&self, role: MessageRole) -> Option<&DraftField>
pub fn gist(&self) -> Option<String>
pub fn gist(&self) -> Option<String>
What the draft is about, in one line of its own values: a message’s
recipients and subject, otherwise its first short values. None for a
draft with nothing to show.
pub fn apply_edits(
&self,
arguments: &Map<String, Value>,
edits: &[DraftEdit],
) -> Result<Map<String, Value>, String>
pub fn apply_edits( &self, arguments: &Map<String, Value>, edits: &[DraftEdit], ) -> Result<Map<String, Value>, String>
arguments with the person’s edits applied. Only fields this draft
offers for editing change, each keeping its JSON type.
pub fn check_edits(&self, edits: &[DraftEdit]) -> Result<(), String>
pub fn check_edits(&self, edits: &[DraftEdit]) -> Result<(), String>
Whether every one of edits changes a field this draft offers for
editing to a value of its type.
pub fn arguments(&self) -> Option<Map<String, Value>>
pub fn arguments(&self) -> Option<Map<String, Value>>
The arguments this draft shows: each text, number and flag field set
at its path. None when a field shows its value only in part (a
secret, a list, a resource, a text cut short). A draft also leaves
out nulls and empty texts, so what this returns is only a candidate:
act on it only when it digests (arguments_digest) to the digest
the draft was confirmed for.
Trait Implementations§
§impl<'de> Deserialize<'de> for Draft
impl<'de> Deserialize<'de> for Draft
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Draft, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Draft, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Serialize for Draft
impl Serialize for Draft
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for Draft
impl StructuralPartialEq for Draft
Auto Trait Implementations§
impl Freeze for Draft
impl RefUnwindSafe for Draft
impl Send for Draft
impl Sync for Draft
impl Unpin for Draft
impl UnsafeUnpin for Draft
impl UnwindSafe for Draft
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more