1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
use rdxl::{xtype,xrender}; xtype!( <!Feed xml_version:String={{"1.0".to_string()}} xml_encoding:String={{"utf-8".to_string()}} xmlns:String={{"http://www.w3.org/2005/Atom".to_string()}}> <!FeedTitle title:String/> <!FeedSubtitle subtitle:String/> <!FeedLink href:String rel:String={{"".to_string()}}/> <!FeedId id:String/> <!FeedUpdated date:String/> <!FeedEntry> <!FeedEntryTitle title:String/> <!FeedEntryLink href:String rel:String={{"".to_string()}} /> <!FeedEntryId id:String/> <!FeedEntryUpdated date:String/> <!FeedEntrySummary summary:String/> <!FeedEntryContentXhtml> <?/> </FeedEntryContentXhtml> <!FeedEntryAuthor> <!FeedEntryAuthorName name:String/> <!FeedEntryAuthorEmail email:String/> </FeedEntryAuthor> </FeedEntry> </Feed> ); xrender!(Feed, {{format!(r#"<?xml version="{}" encoding="{}"?>"#, self.xml_version, self.xml_encoding)}} <feed xmlns={{self.xmlns}}> {{ for c in self.children.iter() {{ {{ if let FeedChildren::FeedTitle(t) = c {{ <title>{{ t.title }}</title> }} else if let FeedChildren::FeedSubtitle(t) = c {{ <subtitle>{{ t.subtitle }}</subtitle> }} else if let FeedChildren::FeedLink(t) = c {{ <link href={{t.href}} {{ if t.rel.len()>0 {{ rel={{t.rel}} }}}} /> }} else if let FeedChildren::FeedId(t) = c {{ <id>{{ t.id }}</id> }} else if let FeedChildren::FeedUpdated(t) = c {{ <updated>{{ t.date }}</updated> }} else if let FeedChildren::FeedEntry(t) = c {{ <entry> {{ for ec in t.children.iter() {{ {{ if let FeedEntryChildren::FeedEntryTitle(e) = ec {{ <title>{{ e.title }}</title> }} else if let FeedEntryChildren::FeedEntryLink(e) = ec {{ <link href={{e.href}} {{ if e.rel.len()>0 {{ rel={{e.rel}} }}}} /> }} else if let FeedEntryChildren::FeedEntryId(e) = ec {{ <id>{{ e.id }}</id> }} else if let FeedEntryChildren::FeedEntryUpdated(e) = ec {{ <updated>{{ e.date }}</updated> }} else if let FeedEntryChildren::FeedEntrySummary(e) = ec {{ <summary>{{ e.summary }}</summary> }} else if let FeedEntryChildren::FeedEntryContentXhtml(e) = ec {{ <content type="xhtml"> {{ for c in e.children.iter() {{ {{ let FeedEntryContentXhtmlChildren::Display(d) = c; }} {{ d }} }} }} </content> }} else if let FeedEntryChildren::FeedEntryAuthor(e) = ec {{ <author> {{ for c in e.children.iter() {{ {{ if let FeedEntryAuthorChildren::FeedEntryAuthorName(n) = c {{ <name>{{ n.name }}</name> }} else if let FeedEntryAuthorChildren::FeedEntryAuthorEmail(n) = c {{ <email>{{ n.email }}</email> }} }} }} }} </author> }} }} }} }} </entry> }} }} }} }} </feed> );