Skip to content

Commit 556a47e

Browse files
committed
Add a .rustfmt.toml file and run cargo fmt --all
1 parent 9ec8a85 commit 556a47e

22 files changed

+174
-194
lines changed

.rustfmt.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Includes only settings that differ from defaults. Defaults here: https://rust-lang.github.io/rustfmt
2+
blank_lines_lower_bound = 0
3+
brace_style = "PreferSameLine"
4+
fn_single_line = true
5+
format_code_in_doc_comments = true
6+
format_strings = true
7+
match_block_trailing_comma = true
8+
merge_imports = true
9+
newline_style = "Unix"
10+
normalize_comments = true
11+
normalize_doc_attributes = true
12+
overflow_delimited_expr = true
13+
reorder_impl_items = true
14+
use_field_init_shorthand = true
15+
use_try_shorthand = true
16+
where_single_line = true
17+
wrap_comments = true

src/libvamc_errors/src/lib.rs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,23 @@
11
#[derive(Debug, PartialEq)]
22
pub struct Diagnostic {
3-
pub level: DiagnosticLevel,
4-
pub message: String,
3+
pub level: DiagnosticLevel,
4+
pub message: String,
55
}
66

77
#[derive(Debug, PartialEq)]
88
pub enum DiagnosticLevel {
9-
Error,
10-
Warning,
9+
Error,
10+
Warning,
1111
}
1212

1313
impl Diagnostic {
14-
pub fn new(message: String, level: DiagnosticLevel) -> Diagnostic {
15-
Diagnostic {
16-
level,
17-
message,
14+
pub fn new(message: String, level: DiagnosticLevel) -> Diagnostic {
15+
Diagnostic { level, message }
1816
}
19-
}
2017

21-
pub fn error(message: String) -> Diagnostic {
22-
Diagnostic::new(message, DiagnosticLevel::Error)
23-
}
18+
pub fn error(message: String) -> Diagnostic { Diagnostic::new(message, DiagnosticLevel::Error) }
2419

25-
pub fn warning(message: String) -> Diagnostic {
26-
Diagnostic::new(message, DiagnosticLevel::Warning)
27-
}
20+
pub fn warning(message: String) -> Diagnostic {
21+
Diagnostic::new(message, DiagnosticLevel::Warning)
22+
}
2823
}

src/libvamc_lexer/src/cursor.rs

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use std::iter::Peekable;
2-
use std::str::Chars;
1+
use std::{iter::Peekable, str::Chars};
32

43
pub struct Cursor<'a> {
54
characters: Peekable<Chars<'a>>,
@@ -14,22 +13,14 @@ impl<'a> Cursor<'a> {
1413
}
1514
}
1615

17-
pub fn is_eof(&mut self) -> bool {
18-
self.characters.peek() == None
19-
}
16+
pub fn is_eof(&mut self) -> bool { self.characters.peek() == None }
2017

21-
pub fn peek(&mut self) -> &char {
22-
self.characters.peek().unwrap_or(&EOF_CHARACTER)
23-
}
18+
pub fn peek(&mut self) -> &char { self.characters.peek().unwrap_or(&EOF_CHARACTER) }
2419

25-
pub fn bump(&mut self) -> Option<char> {
26-
self.characters.next()
27-
}
20+
pub fn bump(&mut self) -> Option<char> { self.characters.next() }
2821

2922
pub fn bump_while<F>(&mut self, predicate: F) -> String
30-
where
31-
F: Fn(char) -> bool,
32-
{
23+
where F: Fn(char) -> bool {
3324
let mut consumed = String::new();
3425

3526
while predicate(self.peek().clone()) && !self.is_eof() {

src/libvamc_lexer/src/definitions.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ pub enum TokenKind {
1818
InlineComment,
1919
/// A block comment:
2020
/// "#[ This is a block comment #]"
21-
/// Nested comments are terminated if they all have balanced opening "#[" and closing "#]" signs.
21+
/// Nested comments are terminated if they all have balanced opening "#["
22+
/// and closing "#]" signs.
2223
BlockComment { terminated: bool },
2324
/// "12"
2425
Literal(LiteralKind),

src/libvamc_lexer/src/lib.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ pub mod definitions;
66

77
mod util;
88

9-
use crate::cursor::Cursor;
10-
use crate::definitions::*;
11-
use crate::util::*;
9+
use crate::{cursor::Cursor, definitions::*, util::*};
1210

1311
impl Token {
1412
pub fn new<S: Into<String>>(kind: TokenKind, value: S) -> Token {
@@ -82,21 +80,21 @@ impl Cursor<'_> {
8280
depth += 1;
8381
value.push('[');
8482
self.bump();
85-
}
83+
},
8684
']' => {
8785
depth -= 1;
8886
value.push(']');
8987
self.bump();
9088
if depth == 0 {
9189
break;
9290
};
93-
}
94-
_ => {}
91+
},
92+
_ => {},
9593
}
96-
}
94+
},
9795
character => {
9896
value.push(character.clone());
99-
}
97+
},
10098
}
10199
}
102100

src/libvamc_lexer/src/test.rs

Lines changed: 55 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -6,115 +6,94 @@ mod test {
66
fn works_with_a_basic_assignment() {
77
let tokens: Vec<Token> = Cursor::new("let first: i32 = 20;").collect();
88

9-
assert_eq!(
10-
tokens,
11-
vec![
12-
Token::new(TokenKind::Identifier, "let"),
13-
Token::new(TokenKind::Whitespace, " "),
14-
Token::new(TokenKind::Identifier, "first"),
15-
Token::new(TokenKind::Colon, ":"),
16-
Token::new(TokenKind::Whitespace, " "),
17-
Token::new(TokenKind::Identifier, "i32"),
18-
Token::new(TokenKind::Whitespace, " "),
19-
Token::new(TokenKind::EqualitySign, "="),
20-
Token::new(TokenKind::Whitespace, " "),
21-
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "20"),
22-
Token::new(TokenKind::Semicolon, ";"),
23-
]
24-
)
9+
assert_eq!(tokens, vec![
10+
Token::new(TokenKind::Identifier, "let"),
11+
Token::new(TokenKind::Whitespace, " "),
12+
Token::new(TokenKind::Identifier, "first"),
13+
Token::new(TokenKind::Colon, ":"),
14+
Token::new(TokenKind::Whitespace, " "),
15+
Token::new(TokenKind::Identifier, "i32"),
16+
Token::new(TokenKind::Whitespace, " "),
17+
Token::new(TokenKind::EqualitySign, "="),
18+
Token::new(TokenKind::Whitespace, " "),
19+
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "20"),
20+
Token::new(TokenKind::Semicolon, ";"),
21+
])
2522
}
2623

2724
#[test]
2825
fn works_with_an_inline_comment() {
2926
let tokens: Vec<Token> = Cursor::new("2 # The number 20").collect();
3027

31-
assert_eq!(
32-
tokens,
33-
vec![
34-
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "2"),
35-
Token::new(TokenKind::Whitespace, " "),
36-
Token::new(TokenKind::InlineComment, " The number 20"),
37-
]
38-
)
28+
assert_eq!(tokens, vec![
29+
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "2"),
30+
Token::new(TokenKind::Whitespace, " "),
31+
Token::new(TokenKind::InlineComment, " The number 20"),
32+
])
3933
}
4034

4135
#[test]
4236
fn works_with_a_terminated_depth_one_block_comment() {
4337
let tokens: Vec<Token> =
4438
Cursor::new("#[\n# This is a block comment\n# It spans multiple lines\n#]").collect();
45-
assert_eq!(
46-
tokens,
47-
vec![Token::new(
48-
TokenKind::BlockComment { terminated: true },
49-
"\n# This is a block comment\n# It spans multiple lines\n"
50-
)]
51-
);
39+
assert_eq!(tokens, vec![Token::new(
40+
TokenKind::BlockComment { terminated: true },
41+
"\n# This is a block comment\n# It spans multiple lines\n"
42+
)]);
5243
}
5344

5445
#[test]
5546
fn works_with_a_terminated_depth_two_block_comment() {
5647
let tokens: Vec<Token> =
5748
Cursor::new("#[\n# Level one\n# #[ Level two #]\n# Level one\n#]").collect();
58-
assert_eq!(
59-
tokens,
60-
vec![Token::new(
61-
TokenKind::BlockComment { terminated: true },
62-
"\n# Level one\n# #[ Level two #]\n# Level one\n"
63-
)]
64-
);
49+
assert_eq!(tokens, vec![Token::new(
50+
TokenKind::BlockComment { terminated: true },
51+
"\n# Level one\n# #[ Level two #]\n# Level one\n"
52+
)]);
6553
}
6654

6755
#[test]
6856
fn works_with_an_unterminated_depth_two_block_comment() {
6957
let tokens: Vec<Token> =
7058
Cursor::new("#[\n# Level one\n# #[ Level two\n# Level one\n#]").collect();
71-
assert_eq!(
72-
tokens,
73-
vec![Token::new(
74-
TokenKind::BlockComment { terminated: false }, // Notice the `false` here.
75-
"\n# Level one\n# #[ Level two\n# Level one\n"
76-
)]
77-
);
59+
assert_eq!(tokens, vec![Token::new(
60+
TokenKind::BlockComment { terminated: false }, // Notice the `false` here.
61+
"\n# Level one\n# #[ Level two\n# Level one\n"
62+
)]);
7863
}
7964

8065
#[test]
8166
fn works_with_braces() {
8267
let tokens: Vec<Token> = Cursor::new("sum { + 2 2 } 5;").collect();
83-
assert_eq!(
84-
tokens,
85-
vec![
86-
Token::new(TokenKind::Identifier, "sum"),
87-
Token::new(TokenKind::Whitespace, " "),
88-
Token::new(TokenKind::OpeningBrace, "{"),
89-
Token::new(TokenKind::Whitespace, " "),
90-
Token::new(TokenKind::PlusSign, "+"),
91-
Token::new(TokenKind::Whitespace, " "),
92-
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "2"),
93-
Token::new(TokenKind::Whitespace, " "),
94-
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "2"),
95-
Token::new(TokenKind::Whitespace, " "),
96-
Token::new(TokenKind::ClosingBrace, "}"),
97-
Token::new(TokenKind::Whitespace, " "),
98-
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "5"),
99-
Token::new(TokenKind::Semicolon, ";"),
100-
]
101-
)
68+
assert_eq!(tokens, vec![
69+
Token::new(TokenKind::Identifier, "sum"),
70+
Token::new(TokenKind::Whitespace, " "),
71+
Token::new(TokenKind::OpeningBrace, "{"),
72+
Token::new(TokenKind::Whitespace, " "),
73+
Token::new(TokenKind::PlusSign, "+"),
74+
Token::new(TokenKind::Whitespace, " "),
75+
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "2"),
76+
Token::new(TokenKind::Whitespace, " "),
77+
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "2"),
78+
Token::new(TokenKind::Whitespace, " "),
79+
Token::new(TokenKind::ClosingBrace, "}"),
80+
Token::new(TokenKind::Whitespace, " "),
81+
Token::new(TokenKind::Literal(LiteralKind::Int(Base::Decimal)), "5"),
82+
Token::new(TokenKind::Semicolon, ";"),
83+
])
10284
}
10385

10486
#[test]
10587
fn works_with_whitespace() {
10688
let tokens: Vec<Token> = Cursor::new("\nsum \n\n \r sum # A comment\n").collect();
107-
assert_eq!(
108-
tokens,
109-
vec![
110-
Token::new(TokenKind::Whitespace, " "),
111-
Token::new(TokenKind::Identifier, "sum"),
112-
Token::new(TokenKind::Whitespace, " "),
113-
Token::new(TokenKind::Identifier, "sum"),
114-
Token::new(TokenKind::Whitespace, " "),
115-
Token::new(TokenKind::InlineComment, " A comment"),
116-
Token::new(TokenKind::Whitespace, " "),
117-
]
118-
)
89+
assert_eq!(tokens, vec![
90+
Token::new(TokenKind::Whitespace, " "),
91+
Token::new(TokenKind::Identifier, "sum"),
92+
Token::new(TokenKind::Whitespace, " "),
93+
Token::new(TokenKind::Identifier, "sum"),
94+
Token::new(TokenKind::Whitespace, " "),
95+
Token::new(TokenKind::InlineComment, " A comment"),
96+
Token::new(TokenKind::Whitespace, " "),
97+
])
11998
}
12099
}

src/libvamc_lexer/src/util.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,4 @@ pub fn is_whitespace(character: char) -> bool {
3232
}
3333
}
3434

35-
pub fn is_numeric_literal(character: char) -> bool {
36-
('0'..='9').contains(&character)
37-
}
35+
pub fn is_numeric_literal(character: char) -> bool { ('0'..='9').contains(&character) }

src/libvamc_parser/src/block.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
use vamc_errors::Diagnostic;
22
use vamc_lexer::definitions::TokenKind;
33

4-
use crate::definitions::ast::{Block, Statement};
5-
use crate::definitions::{Parser, ParserResult};
4+
use crate::definitions::{
5+
ast::{Block, Statement},
6+
Parser, ParserResult,
7+
};
68

79
impl Parser {
810
pub fn parse_block(&mut self) -> ParserResult<Block> {
@@ -26,7 +28,7 @@ impl Parser {
2628
self.bump_until_next();
2729

2830
result
29-
}
31+
},
3032
_ => Err(Diagnostic::error("Failed to parse statement.".into())),
3133
}
3234
}

src/libvamc_parser/src/definitions/ast.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ pub struct Expression {
5151
pub enum ExpressionKind {
5252
/// A literal expression such as `42`.
5353
Literal(Literal),
54-
/// A function call such as `sum 20 10` FunctionCall(F, P) where F is the function expression
55-
/// itself and P is the Vector of parameters.
54+
/// A function call such as `sum 20 10` FunctionCall(F, P) where F is the
55+
/// function expression itself and P is the Vector of parameters.
5656
FunctionCall(Box<Expression>, Vec<Box<Expression>>),
5757
/// A binary operation such as `+ 20 20`
5858
BinaryOperation(BinaryOperation, Box<Expression>, Box<Expression>),

src/libvamc_parser/src/expression.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
use vamc_errors::Diagnostic;
22
use vamc_lexer::definitions::{LiteralKind, TokenKind};
33

4-
use crate::definitions::ast::{Expression, ExpressionKind};
5-
use crate::definitions::{Parser, ParserResult};
4+
use crate::definitions::{
5+
ast::{Expression, ExpressionKind},
6+
Parser, ParserResult,
7+
};
68

79
impl Parser {
810
pub fn parse_expression(&mut self) -> ParserResult<Expression> {
@@ -17,7 +19,7 @@ impl Parser {
1719
Ok(Expression {
1820
kind: ExpressionKind::Literal(literal),
1921
})
20-
}
22+
},
2123
TokenKind::OpeningBrace => {
2224
let block = self
2325
.parse_block()
@@ -26,7 +28,7 @@ impl Parser {
2628
Ok(Expression {
2729
kind: ExpressionKind::Block(Box::new(block)),
2830
})
29-
}
31+
},
3032
_ => Err(Diagnostic::error("Failed to parse expression.".into())),
3133
}
3234
}

0 commit comments

Comments
 (0)