pub struct GenericElement { /* private fields */ }Expand description
GenericElement is a struct that represents a single element in a generic template.
Each GenericElement can contain a title, subtitle, image, and multiple buttons.
§Fields
title: A string that represents the title of the element.image_url: A string that represents the URL of the image to be displayed in the element.subtitle: A string that represents the subtitle of the element.buttons: A vector ofButtonstructs that represent the buttons to be displayed in the element.
§Examples
Creating a GenericElement:
// use russenger::response_models::data::Data;
// use russenger::response_models::button::Button;
// use russenger::response_models::payload::Payload;
// use russenger::response_models::generic::GenericElement;
use russenger::prelude::*; // if you use this import other imports are not needed;
let element = GenericElement::new(
"Title",
"https://example.com/image.jpg",
"Subtitle",
vec![Button::Postback {
title: "Hello World",
payload: Payload::new("/hello_world", Some(Data::new("Hello World!"))),
}],
);
async fn hello_world(res: Res, req: Req) -> Result<()> {
let hello_world: String = req.data.get_value()?;
res.send(TextModel::new(&req.user, &hello_world)).await?;
Ok(())
}Implementations§
Source§impl GenericElement
impl GenericElement
Sourcepub fn new(
title: impl ToString,
image_url: impl ToString,
subtitle: impl ToString,
buttons: impl IntoIterator<Item = Button<impl ToString>>,
) -> Self
pub fn new( title: impl ToString, image_url: impl ToString, subtitle: impl ToString, buttons: impl IntoIterator<Item = Button<impl ToString>>, ) -> Self
new is a method of the GenericElement struct that creates a new instance of GenericElement.
§Parameters
title: &str- The title of the element.image_url: &str- The URL of the image to be displayed in the element.subtitle: &str- The subtitle of the element.buttons: Vec<Button>- A vector ofButtonstructs that represent the buttons to be displayed in the element.
§Panics
This method will panic if the number of buttons is more than 3, as Facebook Messenger only allows a maximum of 3 buttons per element.
§Returns
A new GenericElement instance.
§Examples
Creating a new GenericElement:
use russenger::prelude::*; // if you use this import other imports are not needed;
let element = GenericElement::new(
"Title",
"https://example.com/image.jpg",
"Subtitle",
vec![Button::Postback {
title: "Hello World",
payload: Payload::new("/hello_world", Some(Data::new("Hello World!"))),
}],
);
async fn hello_world(res: Res, req: Req) -> Result<()> {
let hello_world: String = req.data.get_value()?;
res.send(TextModel::new(&req.user, &hello_world)).await?;
Ok(())
}This example shows how to create a new GenericElement.
Trait Implementations§
Source§impl Clone for GenericElement
impl Clone for GenericElement
Source§fn clone(&self) -> GenericElement
fn clone(&self) -> GenericElement
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for GenericElement
impl Debug for GenericElement
Auto Trait Implementations§
impl Freeze for GenericElement
impl RefUnwindSafe for GenericElement
impl Send for GenericElement
impl Sync for GenericElement
impl Unpin for GenericElement
impl UnwindSafe for GenericElement
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
Converts
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> ⓘ
Converts
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