pub mod category;
pub mod category_builder;
pub mod channel;
pub mod channel_builder;
pub mod cloud;
pub mod cloud_builder;
pub mod enclosure;
pub mod enclosure_builder;
pub mod guid;
pub mod guid_builder;
pub mod image;
pub mod image_builder;
pub mod item;
pub mod item_builder;
pub mod source;
pub mod source_builder;
pub mod text_input;
pub mod text_input_builder;
use chrono::*;
use enums::{CloudProtocol, Day};
use mime::Mime;
use url::Url;
#[derive(Clone)]
pub struct Category {
name: String,
domain: Option<Url>,
}
#[derive(Clone, Default)]
pub struct CategoryBuilder {
name: String,
domain: Option<String>,
}
#[derive(Clone)]
pub struct Channel {
title: String,
link: Url,
description: String,
language: Option<String>,
copyright: Option<String>,
managing_editor: Option<String>,
web_master: Option<String>,
pub_date: Option<DateTime<FixedOffset>>,
last_build_date: Option<DateTime<FixedOffset>>,
categories: Option<Vec<Category>>,
generator: Option<String>,
docs: Option<Url>,
cloud: Option<Cloud>,
ttl: Option<i64>,
image: Option<Image>,
rating: Option<String>,
text_input: Option<TextInput>,
skip_hours: Option<Vec<i64>>,
skip_days: Option<Vec<Day>>,
items: Option<Vec<Item>>,
}
#[derive(Clone, Default)]
pub struct ChannelBuilder {
title: String,
link: String,
description: String,
language: Option<String>,
copyright: Option<String>,
managing_editor: Option<String>,
web_master: Option<String>,
pub_date: Option<String>,
last_build_date: Option<String>,
categories: Option<Vec<Category>>,
generator: Option<String>,
docs: Option<String>,
cloud: Option<Cloud>,
ttl: Option<i64>,
image: Option<Image>,
rating: Option<String>,
text_input: Option<TextInput>,
skip_hours: Option<Vec<i64>>,
skip_days: Option<Vec<String>>,
items: Option<Vec<Item>>,
}
#[derive(Clone)]
pub struct Cloud {
domain: Url,
port: i64,
path: String,
register_procedure: String,
protocol: CloudProtocol,
}
#[derive(Clone, Default)]
pub struct CloudBuilder {
domain: String,
port: i64,
path: String,
register_procedure: String,
protocol: String,
}
#[derive(Clone)]
pub struct Enclosure {
url: Url,
length: i64,
mime_type: Mime,
}
#[derive(Clone, Default)]
pub struct EnclosureBuilder {
url: String,
length: i64,
mime_type: String,
}
#[derive(Clone)]
pub struct Guid {
permalink: bool,
value: String,
}
#[derive(Clone, Default)]
pub struct GuidBuilder {
permalink: bool,
value: String,
}
#[derive(Clone)]
pub struct Image {
url: Url,
title: String,
link: Url,
width: i64,
height: i64,
description: Option<String>,
}
#[derive(Clone, Default)]
pub struct ImageBuilder {
url: String,
title: String,
link: String,
width: i64,
height: i64,
description: Option<String>,
}
#[derive(Clone)]
pub struct Item {
title: Option<String>,
link: Option<Url>,
description: Option<String>,
author: Option<String>,
categories: Option<Vec<Category>>,
comments: Option<Url>,
enclosure: Option<Enclosure>,
guid: Option<Guid>,
pub_date: Option<DateTime<FixedOffset>>,
source: Option<Source>,
}
#[derive(Clone, Default)]
pub struct ItemBuilder {
title: Option<String>,
link: Option<String>,
description: Option<String>,
author: Option<String>,
categories: Option<Vec<Category>>,
comments: Option<String>,
enclosure: Option<Enclosure>,
guid: Option<Guid>,
pub_date: Option<String>,
source: Option<Source>,
}
#[derive(Clone)]
pub struct Source {
url: Url,
title: Option<String>,
}
#[derive(Clone, Default)]
pub struct SourceBuilder {
url: String,
title: Option<String>,
}
#[derive(Clone)]
pub struct TextInput {
title: String,
description: String,
name: String,
link: Url,
}
#[derive(Clone, Default)]
pub struct TextInputBuilder {
title: String,
description: String,
name: String,
link: String,
}