From 1f59a4a874a3822331c163f3b33eb5547316fda4 Mon Sep 17 00:00:00 2001 From: Gabriel <68819302+obsidianical@users.noreply.github.com> Date: Thu, 16 Dec 2021 09:03:40 +0100 Subject: [PATCH] multiply strings by float --- .gitignore | 1 + sm-test-files/hello.sm | 1 + src/main.rs | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 sm-test-files/hello.sm diff --git a/.gitignore b/.gitignore index ea8c4bf..de358ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /target +.vscode/ diff --git a/sm-test-files/hello.sm b/sm-test-files/hello.sm new file mode 100644 index 0000000..3413956 --- /dev/null +++ b/sm-test-files/hello.sm @@ -0,0 +1 @@ +fuck java diff --git a/src/main.rs b/src/main.rs index ac3015a..9c8984d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,18 @@ use std::env; +use std::fs; fn main() { - println!("Hello, world!, {:#?}", env::args()); + let args: Vec = env::args().collect(); + let file = fs::read_to_string(&args[1]).expect("Couldnt read file:"); + println!("{:?}", multiply_strings(file, 3.5)); +} + +fn multiply_strings(str: String, multiplier: f32) -> String { + let mut r: String = String::from(str); + let mult_float = multiplier - (multiplier as i32) as f32; + let slice = &r.clone()[0..(r.len() as f32 * mult_float) as usize]; + + r = r.repeat(multiplier as usize); + r += slice; + r }