@@ -107,15 +107,7 @@ fn main() {
107
107
}
108
108
109
109
if args. nested . is_none ( ) {
110
- println ! ( ) ;
111
- println ! ( r#" welcome to... "# ) ;
112
- println ! ( r#" _ _ _ "# ) ;
113
- println ! ( r#" _ __ _ _ ___| |_| (_)_ __ __ _ ___ "# ) ;
114
- println ! ( r#" | '__| | | / __| __| | | '_ \ / _` / __| "# ) ;
115
- println ! ( r#" | | | |_| \__ \ |_| | | | | | (_| \__ \ "# ) ;
116
- println ! ( r#" |_| \__,_|___/\__|_|_|_| |_|\__, |___/ "# ) ;
117
- println ! ( r#" |___/ "# ) ;
118
- println ! ( ) ;
110
+ println ! ( "\n {}\n " , WELCOME ) ;
119
111
}
120
112
121
113
if !Path :: new ( "info.toml" ) . exists ( ) {
@@ -139,8 +131,7 @@ fn main() {
139
131
let verbose = args. nocapture ;
140
132
141
133
let command = args. nested . unwrap_or_else ( || {
142
- let text = fs:: read_to_string ( "default_out.txt" ) . unwrap ( ) ;
143
- println ! ( "{}" , text) ;
134
+ println ! ( "{}\n " , DEFAULT_OUT ) ;
144
135
std:: process:: exit ( 0 ) ;
145
136
} ) ;
146
137
match command {
@@ -229,35 +220,7 @@ fn main() {
229
220
"{emoji} All exercises completed! {emoji}" ,
230
221
emoji = Emoji ( "🎉" , "★" )
231
222
) ;
232
- println ! ( ) ;
233
- println ! ( "+----------------------------------------------------+" ) ;
234
- println ! ( "| You made it to the Fe-nish line! |" ) ;
235
- println ! ( "+-------------------------- ------------------------+" ) ;
236
- println ! ( " \\ / " ) ;
237
- println ! ( " ▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒ " ) ;
238
- println ! ( " ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒ " ) ;
239
- println ! ( " ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒ " ) ;
240
- println ! ( " ░░▒▒▒▒░░▒▒ ▒▒ ▒▒ ▒▒ ▒▒░░▒▒▒▒ " ) ;
241
- println ! ( " ▓▓▓▓▓▓▓▓ ▓▓ ▓▓██ ▓▓ ▓▓██ ▓▓ ▓▓▓▓▓▓▓▓ " ) ;
242
- println ! ( " ▒▒▒▒ ▒▒ ████ ▒▒ ████ ▒▒░░ ▒▒▒▒ " ) ;
243
- println ! ( " ▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒ " ) ;
244
- println ! ( " ▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒ " ) ;
245
- println ! ( " ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ " ) ;
246
- println ! ( " ▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒ " ) ;
247
- println ! ( " ▒▒ ▒▒▒▒▒▒▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒ ▒▒ " ) ;
248
- println ! ( " ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ " ) ;
249
- println ! ( " ▒▒ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ ▒▒ " ) ;
250
- println ! ( " ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ " ) ;
251
- println ! ( " ▒▒ ▒▒ ▒▒ ▒▒ " ) ;
252
- println ! ( ) ;
253
- println ! ( "We hope you enjoyed learning about the various aspects of Rust!" ) ;
254
- println ! (
255
- "If you noticed any issues, please don't hesitate to report them to our repo."
256
- ) ;
257
- println ! ( "You can also contribute your own exercises to help the greater community!" ) ;
258
- println ! ( ) ;
259
- println ! ( "Before reporting an issue or contributing, please read our guidelines:" ) ;
260
- println ! ( "https://github.com/rust-lang/rustlings/blob/main/CONTRIBUTING.md" ) ;
223
+ println ! ( "\n {}\n " , FENISH_LINE ) ;
261
224
}
262
225
}
263
226
}
@@ -356,3 +319,64 @@ fn rustc_exists() -> bool {
356
319
. map ( |status| status. success ( ) )
357
320
. unwrap_or ( false )
358
321
}
322
+
323
+ const DEFAULT_OUT : & str = r#"Thanks for installing Rustlings!
324
+
325
+ Is this your first time? Don't worry, Rustlings was made for beginners! We are
326
+ going to teach you a lot of things about Rust, but before we can get
327
+ started, here's a couple of notes about how Rustlings operates:
328
+
329
+ 1. The central concept behind Rustlings is that you solve exercises. These
330
+ exercises usually have some sort of syntax error in them, which will cause
331
+ them to fail compilation or testing. Sometimes there's a logic error instead
332
+ of a syntax error. No matter what error, it's your job to find it and fix it!
333
+ You'll know when you fixed it because then, the exercise will compile and
334
+ Rustlings will be able to move on to the next exercise.
335
+ 2. If you run Rustlings in watch mode (which we recommend), it'll automatically
336
+ start with the first exercise. Don't get confused by an error message popping
337
+ up as soon as you run Rustlings! This is part of the exercise that you're
338
+ supposed to solve, so open the exercise file in an editor and start your
339
+ detective work!
340
+ 3. If you're stuck on an exercise, there is a helpful hint you can view by typing
341
+ 'hint' (in watch mode), or running `rustlings hint exercise_name`.
342
+ 4. If an exercise doesn't make sense to you, feel free to open an issue on GitHub!
343
+ (https://github.com/rust-lang/rustlings/issues/new). We look at every issue,
344
+ and sometimes, other learners do too so you can help each other out!
345
+
346
+ Got all that? Great! To get started, run `rustlings watch` in order to get the first
347
+ exercise. Make sure to have your editor open!"# ;
348
+
349
+ const FENISH_LINE : & str = r#"+----------------------------------------------------+
350
+ | You made it to the Fe-nish line! |
351
+ +-------------------------- ------------------------+
352
+ \\/
353
+ ▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒
354
+ ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒
355
+ ▒▒▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒▒▒
356
+ ░░▒▒▒▒░░▒▒ ▒▒ ▒▒ ▒▒ ▒▒░░▒▒▒▒
357
+ ▓▓▓▓▓▓▓▓ ▓▓ ▓▓██ ▓▓ ▓▓██ ▓▓ ▓▓▓▓▓▓▓▓
358
+ ▒▒▒▒ ▒▒ ████ ▒▒ ████ ▒▒░░ ▒▒▒▒
359
+ ▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒
360
+ ▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒
361
+ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
362
+ ▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒
363
+ ▒▒ ▒▒▒▒▒▒▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒ ▒▒
364
+ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒
365
+ ▒▒ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ ▒▒
366
+ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒ ▒▒
367
+ ▒▒ ▒▒ ▒▒ ▒▒
368
+
369
+ We hope you enjoyed learning about the various aspects of Rust!
370
+ If you noticed any issues, please don't hesitate to report them to our repo.
371
+ You can also contribute your own exercises to help the greater community!
372
+
373
+ Before reporting an issue or contributing, please read our guidelines:
374
+ https://github.com/rust-lang/rustlings/blob/main/CONTRIBUTING.md"# ;
375
+
376
+ const WELCOME : & str = r#" welcome to...
377
+ _ _ _
378
+ _ __ _ _ ___| |_| (_)_ __ __ _ ___
379
+ | '__| | | / __| __| | | '_ \ / _` / __|
380
+ | | | |_| \__ \ |_| | | | | | (_| \__ \
381
+ |_| \__,_|___/\__|_|_|_| |_|\__, |___/
382
+ |___/"# ;
0 commit comments