Added comments

This commit is contained in:
Dawid Pietrykowski 2023-06-20 18:47:27 +02:00
parent c76559dda2
commit 4f793a3569

View File

@ -11,12 +11,14 @@ struct Playlist{
} }
impl Playlist{ impl Playlist{
// Empty constructor
fn new() -> Playlist { fn new() -> Playlist {
Playlist{ Playlist{
songs: Vec::new(), songs: Vec::new(),
} }
} }
// Generates iterator from playlist
fn iter(&self) -> PlaylistIterator{ fn iter(&self) -> PlaylistIterator{
PlaylistIterator{ PlaylistIterator{
playlist: self, playlist: self,
@ -24,6 +26,7 @@ impl Playlist{
} }
} }
// Adds a song to playlist
fn add_song(&mut self, song: Song){ fn add_song(&mut self, song: Song){
self.songs.push(song); self.songs.push(song);
} }
@ -38,15 +41,22 @@ impl<'a> Iterator for PlaylistIterator<'a>{
type Item = &'a Song; type Item = &'a Song;
fn next(&mut self) -> Option<Self::Item> { fn next(&mut self) -> Option<Self::Item> {
// Attempts to get current song
let song = self.playlist.songs.get(self.current_index as usize); let song = self.playlist.songs.get(self.current_index as usize);
// Moves id to next song
self.current_index += 1; self.current_index += 1;
// Returns song or nothing
song song
} }
} }
fn main() { fn main() {
// Creating a playlist
let mut playlist = Playlist::new(); let mut playlist = Playlist::new();
// Adding songs to a playlist
playlist.add_song( playlist.add_song(
Song{ Song{
name: String::from("s1"), name: String::from("s1"),
@ -69,6 +79,7 @@ fn main() {
} }
); );
// Iterating over playlist and printing song information
for song in playlist.iter(){ for song in playlist.iter(){
println!("{:?}", song); println!("{:?}", song);
} }