feedparser_rs/namespace/
mod.rs1pub mod cc;
30pub mod content;
32pub mod dublin_core;
34pub mod georss;
36pub mod media_rss;
38
39pub mod namespaces {
41 pub const DUBLIN_CORE: &str = "http://purl.org/dc/elements/1.1/";
43
44 pub const CONTENT: &str = "http://purl.org/rss/1.0/modules/content/";
46
47 pub const MEDIA: &str = "http://search.yahoo.com/mrss/";
49
50 pub const ATOM: &str = "http://www.w3.org/2005/Atom";
52
53 pub const RDF: &str = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
55
56 pub const RSS_10: &str = "http://purl.org/rss/1.0/";
58
59 pub const ITUNES: &str = "http://www.itunes.com/dtds/podcast-1.0.dtd";
61
62 pub const PODCAST: &str = "https://podcastindex.org/namespace/1.0";
64
65 pub const GEORSS: &str = "http://www.georss.org/georss";
67
68 pub const CC: &str = "http://creativecommons.org/ns#";
70
71 pub const CREATIVE_COMMONS: &str = "http://backend.userland.com/creativeCommonsRssModule";
73}
74
75pub fn get_namespace_uri(prefix: &str) -> Option<&'static str> {
85 match prefix {
86 "dc" => Some(namespaces::DUBLIN_CORE),
87 "content" => Some(namespaces::CONTENT),
88 "media" => Some(namespaces::MEDIA),
89 "atom" => Some(namespaces::ATOM),
90 "rdf" => Some(namespaces::RDF),
91 "itunes" => Some(namespaces::ITUNES),
92 "podcast" => Some(namespaces::PODCAST),
93 "georss" => Some(namespaces::GEORSS),
94 "cc" => Some(namespaces::CC),
95 "creativeCommons" => Some(namespaces::CREATIVE_COMMONS),
96 _ => None,
97 }
98}
99
100pub fn get_namespace_prefix(uri: &str) -> Option<&'static str> {
110 match uri {
111 namespaces::DUBLIN_CORE => Some("dc"),
112 namespaces::CONTENT => Some("content"),
113 namespaces::MEDIA => Some("media"),
114 namespaces::ATOM => Some("atom"),
115 namespaces::RDF => Some("rdf"),
116 namespaces::ITUNES => Some("itunes"),
117 namespaces::PODCAST => Some("podcast"),
118 namespaces::GEORSS => Some("georss"),
119 namespaces::CC => Some("cc"),
120 namespaces::CREATIVE_COMMONS => Some("creativeCommons"),
121 _ => None,
122 }
123}
124
125#[cfg(test)]
126mod tests {
127 use super::*;
128
129 #[test]
130 fn test_get_namespace_uri() {
131 assert_eq!(
132 get_namespace_uri("dc"),
133 Some("http://purl.org/dc/elements/1.1/")
134 );
135 assert_eq!(
136 get_namespace_uri("content"),
137 Some("http://purl.org/rss/1.0/modules/content/")
138 );
139 assert_eq!(
140 get_namespace_uri("media"),
141 Some("http://search.yahoo.com/mrss/")
142 );
143 assert_eq!(get_namespace_uri("unknown"), None);
144 }
145
146 #[test]
147 fn test_get_namespace_prefix() {
148 assert_eq!(
149 get_namespace_prefix("http://purl.org/dc/elements/1.1/"),
150 Some("dc")
151 );
152 assert_eq!(
153 get_namespace_prefix("http://purl.org/rss/1.0/modules/content/"),
154 Some("content")
155 );
156 assert_eq!(
157 get_namespace_prefix("http://search.yahoo.com/mrss/"),
158 Some("media")
159 );
160 assert_eq!(get_namespace_prefix("http://unknown.example.com/"), None);
161 }
162}