Skip to content

Commit 20af47b

Browse files
committed
rustfmt
1 parent 9cbfadf commit 20af47b

File tree

12 files changed

+393
-132
lines changed

12 files changed

+393
-132
lines changed

src/clojure_std.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
pub (crate) mod thread;
2-
pub (crate) mod time;
3-
pub (crate) mod env;
1+
pub(crate) mod env;
2+
pub(crate) mod thread;
3+
pub(crate) mod time;

src/clojure_std/env.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ use crate::ifn::IFn;
33
use crate::value::{ToValue, Value};
44
use std::rc::Rc;
55

6-
use std::env;
76
use crate::type_tag::TypeTag;
7+
use std::env;
88

99
/// provides a function to return env variables
1010
/// similair to Clojure (System/getenv [key])
@@ -20,13 +20,11 @@ impl IFn for GetEnvFn {
2020
fn invoke(&self, args: Vec<Rc<Value>>) -> Value {
2121
if args.len() == 1 {
2222
match args.get(0).unwrap().to_value() {
23-
Value::String(key) => {
24-
match env::var(key) {
25-
Ok(val) => Value::String(val),
26-
Err(_) => Value::Nil
27-
}
28-
}
29-
_a => error_message::type_mismatch(TypeTag::String, &_a)
23+
Value::String(key) => match env::var(key) {
24+
Ok(val) => Value::String(val),
25+
Err(_) => Value::Nil,
26+
},
27+
_a => error_message::type_mismatch(TypeTag::String, &_a),
3028
}
3129
} else {
3230
return error_message::wrong_arg_count(1, args.len());

src/clojure_string/join.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use crate::iterable::Iterable;
21
use crate::ifn::IFn;
2+
use crate::iterable::Iterable;
33
use crate::value::{ToValue, Value};
44
use std::rc::Rc;
55

@@ -22,7 +22,7 @@ impl IFn for JoinFn {
2222
if args.len() != 1 && args.len() != 2 {
2323
return error_message::wrong_varg_count(&[1, 2], args.len());
2424
}
25-
25+
2626
let separator = if args.len() == 1 {
2727
String::from("")
2828
} else {
@@ -40,13 +40,11 @@ impl IFn for JoinFn {
4040
.iter()
4141
.map(|x| x.to_string())
4242
.collect::<Vec<std::string::String>>()
43-
.join(&separator)
43+
.join(&separator),
4444
)
45-
}
46-
else {
45+
} else {
4746
Value::String(String::from(""))
4847
}
49-
5048
}
5149
}
5250

src/environment.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,16 @@ impl EnvironmentVal {
3737
self.change_namespace(symbol.unqualified());
3838
}
3939
}
40-
fn add_referred_syms(&self,namespace_sym: &Symbol, syms: HashMap<Symbol,Vec<Symbol>>) {
41-
self.namespaces.add_referred_syms(namespace_sym,syms);
40+
fn add_referred_syms(&self, namespace_sym: &Symbol, syms: HashMap<Symbol, Vec<Symbol>>) {
41+
self.namespaces.add_referred_syms(namespace_sym, syms);
4242
}
43-
fn add_referred_namespace(&self,namespace_sym: &Symbol, referred_namespace_sym: &Symbol) {
44-
self.namespaces.add_referred_namespace(namespace_sym,referred_namespace_sym);
43+
fn add_referred_namespace(&self, namespace_sym: &Symbol, referred_namespace_sym: &Symbol) {
44+
self.namespaces
45+
.add_referred_namespace(namespace_sym, referred_namespace_sym);
4546
}
4647
fn insert_into_namespace(&self, namespace_sym: &Symbol, sym: Symbol, val: Rc<Value>) {
47-
self.namespaces.insert_into_namespace(namespace_sym, &sym, val);
48+
self.namespaces
49+
.insert_into_namespace(namespace_sym, &sym, val);
4850
}
4951
fn insert_into_current_namespace(&self, sym: Symbol, val: Rc<Value>) {
5052
self.namespaces
@@ -101,34 +103,34 @@ impl Environment {
101103
),
102104
}
103105
}
104-
pub fn add_referred_syms(&self,namespace_sym: &Symbol, syms: HashMap<Symbol,Vec<Symbol>>) {
106+
pub fn add_referred_syms(&self, namespace_sym: &Symbol, syms: HashMap<Symbol, Vec<Symbol>>) {
105107
match self.get_main_environment() {
106108
MainEnvironment(env_val) => {
107-
env_val.add_referred_syms(namespace_sym,syms);
109+
env_val.add_referred_syms(namespace_sym, syms);
108110
}
109111
LocalEnvironment(..) => panic!(
110112
"get_main_environment() returns LocalEnvironment,\
111113
but by definition should only return MainEnvironment"
112114
),
113115
}
114116
}
115-
pub fn add_referred_syms_to_curr_namespace(&self,syms: HashMap<Symbol,Vec<Symbol>>) {
117+
pub fn add_referred_syms_to_curr_namespace(&self, syms: HashMap<Symbol, Vec<Symbol>>) {
116118
match self.get_main_environment() {
117119
MainEnvironment(env_val) => {
118120
let namespace_sym = self.get_current_namespace();
119-
env_val.add_referred_syms(&namespace_sym,syms);
121+
env_val.add_referred_syms(&namespace_sym, syms);
120122
}
121123
LocalEnvironment(..) => panic!(
122124
"get_main_environment() returns LocalEnvironment,\
123125
but by definition should only return MainEnvironment"
124126
),
125127
}
126128
}
127-
pub fn add_referred_namespace_to_curr_namespace(&self,referred_namespace_sym: &Symbol) {
129+
pub fn add_referred_namespace_to_curr_namespace(&self, referred_namespace_sym: &Symbol) {
128130
match self.get_main_environment() {
129131
MainEnvironment(env_val) => {
130132
let namespace_sym = self.get_current_namespace();
131-
env_val.add_referred_namespace(&namespace_sym,referred_namespace_sym);
133+
env_val.add_referred_namespace(&namespace_sym, referred_namespace_sym);
132134
}
133135
LocalEnvironment(..) => panic!(
134136
"get_main_environment() returns LocalEnvironment,\

src/error_message.rs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::type_tag::TypeTag;
22
use crate::value::Value;
33
use std::error::Error;
4+
use std::fmt;
45

56
pub fn type_mismatch(expected: TypeTag, got: &Value) -> Value {
67
Value::Condition(format!(
@@ -44,3 +45,71 @@ pub fn index_cannot_be_negative(ind: usize) -> Value {
4445
pub fn generic_err(error: Box<dyn Error>) -> Value {
4546
Value::Condition(error.to_string())
4647
}
48+
49+
pub fn invalid_key<T: fmt::Display>(given: &T, valid: &[T]) -> Value {
50+
Value::Condition(format!(
51+
"Invalid key; given: {}, expecting one of ({})",
52+
given,
53+
valid
54+
.iter()
55+
.map(|x| x.to_string())
56+
.collect::<Vec<String>>()
57+
.join(",")
58+
))
59+
}
60+
61+
// pub fn custom(error: &str) -> Value {
62+
// Value::Condition(String::from(error))
63+
// }
64+
65+
// /// error_message::strict::..
66+
// /// Are a set of error message tools that are very rigid in how
67+
// /// you can build error messages, leveraging the type system
68+
// /// to write very specific errors. For a more flexible
69+
// /// set of tools, set error_message::free
70+
// mod free {
71+
// use crate::type_tag::TypeTag;
72+
// use crate::value::Value;
73+
74+
// enum ErrorMessage {
75+
// // "Expected: clojure.lang.string"
76+
// Type(TypeTag),
77+
// // "Expected: 1"
78+
// Size(usize),
79+
// // "Expected: I32 | F32 | I64"
80+
// TypeRange(Vec<TypeTag>),
81+
// Custom(String)
82+
// }
83+
// pub fn type_mismatch(expected: &str, got: &str) -> Value {
84+
// Value::Condition(format!(
85+
// "Type mismatch; Expected instance of {}, Recieved type {}",
86+
// expected, got
87+
// ))
88+
// }
89+
// pub fn wrong_arg_count(expected: &str, got: &str) -> Value {
90+
// Value::Condition(format!(
91+
// "Wrong number of arguments given to function (Given: {}, Expected: {})",
92+
// got, expected
93+
// ))
94+
// }
95+
96+
// pub fn index_out_of_bounds(ind: usize, count: usize) -> Value {
97+
// Value::Condition(format!(
98+
// "Index out of bounds: Index ({}), Length: ({})",
99+
// ind, count
100+
// ))
101+
// }
102+
103+
// pub fn index_cannot_be_negative(ind: usize) -> Value {
104+
// Value::Condition(format!("Index cannot be negative; Index ({})", ind))
105+
// }
106+
107+
// // pub fn generic_err(error: Box<dyn Error>) -> Value {
108+
// // Value::Condition(error.to_string())
109+
// // }
110+
111+
// pub fn custom(error: &str) -> Value {
112+
// Value::Condition(String::from(error))
113+
// }
114+
115+
//

0 commit comments

Comments
 (0)