Delete rust directory

This commit is contained in:
Matt Decker 2022-06-26 09:18:20 -05:00 committed by GitHub
parent e4968f2a77
commit e5defc28a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 0 additions and 141 deletions

1
rust/.gitignore vendored
View File

@ -1 +0,0 @@
target/

6
rust/Cargo.lock generated
View File

@ -1,6 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "rust"
version = "0.2.0"

View File

@ -1,5 +0,0 @@
[package]
name = "rust"
version = "0.2.0"
authors = ["Michael Gerhaeuser <michael.gerhaeuser@gmail.com>", "rrokkam <rohithrokkam@gmail.com>"]
edition = "2018"

View File

@ -1,99 +0,0 @@
use std::fmt::{self, Display};
pub struct Item {
pub name: String,
pub sell_in: i32,
pub quality: i32,
}
impl Item {
pub fn new(name: impl Into<String>, sell_in: i32, quality: i32) -> Item {
Item {
name: name.into(),
sell_in,
quality,
}
}
}
impl Display for Item {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}, {}, {}", self.name, self.sell_in, self.quality)
}
}
pub struct GildedRose {
pub items: Vec<Item>,
}
impl GildedRose {
pub fn new(items: Vec<Item>) -> GildedRose {
GildedRose { items }
}
pub fn update_quality(&mut self) {
for item in &mut self.items {
if item.name != "Aged Brie" && item.name != "Backstage passes to a TAFKAL80ETC concert"
{
if item.quality > 0 {
if item.name != "Sulfuras, Hand of Ragnaros" {
item.quality = item.quality - 1;
}
}
} else {
if item.quality < 50 {
item.quality = item.quality + 1;
if item.name == "Backstage passes to a TAFKAL80ETC concert" {
if item.sell_in < 11 {
if item.quality < 50 {
item.quality = item.quality + 1;
}
}
if item.sell_in < 6 {
if item.quality < 50 {
item.quality = item.quality + 1;
}
}
}
}
}
if item.name != "Sulfuras, Hand of Ragnaros" {
item.sell_in = item.sell_in - 1;
}
if item.sell_in < 0 {
if item.name != "Aged Brie" {
if item.name != "Backstage passes to a TAFKAL80ETC concert" {
if item.quality > 0 {
if item.name != "Sulfuras, Hand of Ragnaros" {
item.quality = item.quality - 1;
}
}
} else {
item.quality = item.quality - item.quality;
}
} else {
if item.quality < 50 {
item.quality = item.quality + 1;
}
}
}
}
}
}
#[cfg(test)]
mod tests {
use super::{GildedRose, Item};
#[test]
pub fn foo() {
let items = vec![Item::new("foo", 0, 0)];
let mut rose = GildedRose::new(items);
rose.update_quality();
assert_eq!("fixme", rose.items[0].name);
}
}

View File

@ -1,30 +0,0 @@
mod gildedrose;
use gildedrose::{GildedRose, Item};
fn main() {
let items = vec![
Item::new("+5 Dexterity Vest", 10, 20),
Item::new("Aged Brie", 2, 0),
Item::new("Elixir of the Mongoose", 5, 7),
Item::new("Sulfuras, Hand of Ragnaros", 0, 80),
Item::new("Sulfuras, Hand of Ragnaros", -1, 80),
Item::new("Backstage passes to a TAFKAL80ETC concert", 15, 20),
Item::new("Backstage passes to a TAFKAL80ETC concert", 10, 49),
Item::new("Backstage passes to a TAFKAL80ETC concert", 5, 49),
// this conjured item does not work properly yet
Item::new("Conjured Mana Cake", 3, 6),
];
let mut rose = GildedRose::new(items);
println!("OMGHAI!");
for i in 0..=30 {
println!("-------- day {} --------", i);
println!("name, sellIn, quality");
for item in &rose.items {
println!("{}", item);
}
println!();
rose.update_quality();
}
}