#![forbid(unsafe_code, future_incompatible)]
#![forbid(rust_2018_idioms, rust_2018_compatibility)]
#![deny(missing_debug_implementations, bad_style)]
#![deny(missing_docs)]
#![cfg_attr(test, deny(warnings))]
mod summary;
mod summary_large_image;
pub use crate::summary::Summary;
pub use crate::summary_large_image::SummaryLargeImage;
pub trait TwitterCard {
fn build(self) -> String;
}
#[inline]
pub fn create_card(content: &str) -> String {
create("twitter:card", content)
}
#[inline]
pub fn create_site(content: &str) -> String {
create("twitter:site", content)
}
#[inline]
pub fn create_site_id(content: &str) -> String {
create("twitter:site:id", content)
}
#[inline]
pub fn create_desc(content: &str) -> String {
debug_assert!(
content.len() <= 200,
"Description has a maximum of 200 characters"
);
create("twitter:description", content)
}
#[inline]
pub fn create_title(content: &str) -> String {
debug_assert!(content.len() <= 70, "Title has a maximum of 70 characters");
create("twitter:title", content)
}
#[inline]
pub fn create_image(content: &str) -> String {
create("twitter:image", content)
}
#[inline]
pub fn create_image_alt(content: &str) -> String {
debug_assert!(
content.len() <= 420,
"Image alt has a maximum of 420 characters"
);
create("twitter:image:alt", content)
}
#[inline]
pub fn create_creator_id(content: &str) -> String {
create("twitter:creator:id", content)
}
#[inline]
pub fn create_creator(content: &str) -> String {
create("twitter:creator", content)
}
#[inline]
pub fn create_player(content: &str) -> String {
create("twitter:player", content)
}
#[inline]
pub fn create_player_width(content: &str) -> String {
create("twitter:player:width", content)
}
#[inline]
pub fn create_player_height(content: &str) -> String {
create("twitter:player:height", content)
}
#[inline]
pub fn create_player_stream(content: &str) -> String {
create("twitter:player:stream", content)
}
#[inline]
pub fn create_app_name_iphone(content: &str) -> String {
create("twitter:app:name:iphone", content)
}
#[inline]
pub fn create_app_id_iphone(content: &str) -> String {
create("twitter:app:id:iphone", content)
}
#[inline]
pub fn create_app_url_iphone(content: &str) -> String {
create("twitter:app:url:iphone", content)
}
#[inline]
pub fn create_app_name_ipad(content: &str) -> String {
create("twitter:app:name:ipad", content)
}
#[inline]
pub fn create_app_id_ipad(content: &str) -> String {
create("twitter:app:id:ipad", content)
}
#[inline]
pub fn create_app_url_ipad(content: &str) -> String {
create("twitter:app:url:ipad", content)
}
#[inline]
pub fn create_app_name_googleplay(content: &str) -> String {
create("twitter:app:name:googleplay", content)
}
#[inline]
pub fn create_app_id_googleplay(content: &str) -> String {
create("twitter:app:id:googleplay", content)
}
#[inline]
pub fn create_app_url_googleplay(content: &str) -> String {
create("twitter:app:url:googleplay", content)
}
#[inline]
fn create(name: &str, content: &str) -> String {
format!(r#"<meta name="{}" content="{}" />"#, name, content)
}