diff options
Diffstat (limited to 'src/utils.rs')
-rw-r--r-- | src/utils.rs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/utils.rs b/src/utils.rs index dcf652d..9859f39 100644 --- a/src/utils.rs +++ b/src/utils.rs | |||
@@ -4,15 +4,20 @@ use crate::{ | |||
4 | lisp::{ | 4 | lisp::{ |
5 | error::{EvalError, LispError, ParseError}, | 5 | error::{EvalError, LispError, ParseError}, |
6 | eval::Evaluator, | 6 | eval::Evaluator, |
7 | expr::LispExpr, | ||
8 | lex::Lexer, | 7 | lex::Lexer, |
9 | parse::Parser, | 8 | parse::Parser, |
10 | }, | 9 | }, |
11 | message::Message, | 10 | message::Message, |
12 | }; | 11 | }; |
13 | 12 | ||
14 | use std::{fs::OpenOptions, io::Read, path::Path}; | 13 | use std::{ |
14 | fs::OpenOptions, | ||
15 | io::{self, Cursor, Read}, | ||
16 | path::Path, | ||
17 | }; | ||
15 | 18 | ||
19 | use log::info; | ||
20 | use obi::Image; | ||
16 | use sdl2::{ | 21 | use sdl2::{ |
17 | keyboard::{Keycode, Mod}, | 22 | keyboard::{Keycode, Mod}, |
18 | pixels::Color, | 23 | pixels::Color, |
@@ -91,3 +96,15 @@ pub fn load_script<P: AsRef<Path>>(path: P, app: &mut AppState) -> Result<(), Li | |||
91 | } | 96 | } |
92 | return Ok(()); | 97 | return Ok(()); |
93 | } | 98 | } |
99 | |||
100 | pub fn load_file<P: AsRef<Path>>(path: P) -> Result<Image, io::Error> { | ||
101 | info!("loading existing file `{:?}`", path.as_ref()); | ||
102 | let mut image = OpenOptions::new() | ||
103 | .read(true) | ||
104 | .write(false) | ||
105 | .create(false) | ||
106 | .open(&path)?; | ||
107 | let mut buf = Vec::new(); | ||
108 | image.read_to_end(&mut buf)?; | ||
109 | Ok(Image::decode(&mut (Cursor::new(buf))).unwrap()) // TODO: obi erro | ||
110 | } | ||