Comments (4)
Seems like we could add an fn items_mut(&mut self) -> &mut [Item]
on a Channel
to complement the fn item(&self) -> &[Item]
method.
from rss.
@frewsxcv To be clear, I'm very grateful this library exists so that I don't have to go through the schlep of making a multi-RSS version compliant library myself!
What you describe is a solution but is there a strong motivation for making it impossible to work with the data itself? There's any number of things someone might want to do with channel metadata or other bits and the library's universally private fields means someone has to file an issue or a PR every time they need a new getter or setter. That seems a bit byzantine.
from rss.
Resolved in #62
What you describe is a solution but is there a strong motivation for making it impossible to work with the data itself? There's any number of things someone might want to do with channel metadata or other bits and the library's universally private fields means someone has to file an issue or a PR every time they need a new getter or setter. That seems a bit byzantine.
In my opinion, having all the struct fields be exposed is a valid design decision here (and one I had originally for this crate). I also think the current design decision of having these getters/setters is also a valid design. I think having both exposed struct fields with the getters/setters is a bit redundant thought.
One possible advantage with the current design is we also get to specify Into<..>
for all the parameters in the setters, which improve ergonomics a bit. Some people like this more than others; I'm pretty neutral about it personally.
In all, I don't feel strongly about which design is better, but at this point, I'm in favor of keeping the current design to reduce churn for dependent projects. If there's anything we/I can do to help facilitate your use case of this crate, let me know!
from rss.
Thank you for the considered reply and the patch to support taking mutable slices of channel contents!
from rss.
Related Issues (20)
- Automatically add the content namespace to a channel when an item makes use of <content:encoded> (or document the requirement) HOT 1
- Allow taking a chrono::DateTime when setting e.g. pub_date, last_build_date, etc.
- Add dc:date item field to pubDate field HOT 4
- valid RSS feed can not be parsed HOT 1
- Allow choice between `write_cdata_element` and `write_text_element` HOT 5
- Err when reading/writing/reading a channel
- Track changes
- All build methods returning String instead of Error HOT 3
- Make ToXml public HOT 4
- wasm build HOT 2
- Add support for the podcast namespace
- Getters and setters for new extensions HOT 2
- update `quick_xml` dependency HOT 2
- Support CDATA or values without escaping when writing Extension.value HOT 4
- Invalid RSS feed when having 0 items in a podcast HOT 6
- Failed to build HOT 1
- Extensions not recognized when namespaces are declared inline HOT 1
- Podcast rss feed returns EOF with rust-syndication crate HOT 8
- iTunes extension not working while the extensions map does contain the respective information HOT 8
- Encode & and < with hex codes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rss.