Edit README; Improve bench script; Optimize
This commit is contained in:
parent
c4b51a1ef9
commit
900de8ca4b
@ -93,6 +93,8 @@ cargo install dust-lang
|
|||||||
dust
|
dust
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Benchmarks
|
||||||
|
|
||||||
## Development Status
|
## Development Status
|
||||||
|
|
||||||
Currently, Dust is being prepared for version 1.0. Until then, there may be breaking changes to the language and CLI.
|
Currently, Dust is being prepared for version 1.0. Until then, there may be breaking changes to the language and CLI.
|
||||||
|
@ -11,7 +11,7 @@ hyperfine \
|
|||||||
--shell none \
|
--shell none \
|
||||||
--parameter-list data_path examples/assets/seaCreatures.json \
|
--parameter-list data_path examples/assets/seaCreatures.json \
|
||||||
--warmup 3 \
|
--warmup 3 \
|
||||||
"dust -c 'length(json:parse(fs:read_file(\"{data_path}\")))'" \
|
"target/release/dust -c 'length(json:parse(fs:read_file(\"{data_path}\")))'" \
|
||||||
"jq 'length' {data_path}" \
|
"jq 'length' {data_path}" \
|
||||||
"node --eval \"require('node:fs').readFile('{data_path}', (err, data)=>{console.log(JSON.parse(data).length)})\"" \
|
"node --eval \"require('node:fs').readFile('{data_path}', (err, data)=>{console.log(JSON.parse(data).length)})\"" \
|
||||||
"nu -c 'open {data_path} | length'"
|
"nu -c 'open {data_path} | length'"
|
||||||
@ -20,7 +20,7 @@ hyperfine \
|
|||||||
--shell none \
|
--shell none \
|
||||||
--parameter-list data_path examples/assets/jq_data.json \
|
--parameter-list data_path examples/assets/jq_data.json \
|
||||||
--warmup 3 \
|
--warmup 3 \
|
||||||
"dust -c 'length(json:parse(fs:read_file(\"{data_path}\")))'" \
|
"target/release/dust -c 'length(json:parse(fs:read_file(\"{data_path}\")))'" \
|
||||||
"jq 'length' {data_path}" \
|
"jq 'length' {data_path}" \
|
||||||
"node --eval \"require('node:fs').readFile('{data_path}', (err, data)=>{console.log(JSON.parse(data).length)})\"" \
|
"node --eval \"require('node:fs').readFile('{data_path}', (err, data)=>{console.log(JSON.parse(data).length)})\"" \
|
||||||
"nu -c 'open {data_path} | length'"
|
"nu -c 'open {data_path} | length'"
|
||||||
@ -29,7 +29,7 @@ hyperfine \
|
|||||||
--shell none \
|
--shell none \
|
||||||
--parameter-list data_path dielectron.json \
|
--parameter-list data_path dielectron.json \
|
||||||
--warmup 3 \
|
--warmup 3 \
|
||||||
"dust -c 'length(json:parse(fs:read_file(\"{data_path}\")))'" \
|
"target/release/dust -c 'length(json:parse(fs:read_file(\"{data_path}\")))'" \
|
||||||
"jq 'length' {data_path}" \
|
"jq 'length' {data_path}" \
|
||||||
"node --eval \"require('node:fs').readFile('{data_path}', (err, data)=>{console.log(JSON.parse(data).length)})\"" \
|
"node --eval \"require('node:fs').readFile('{data_path}', (err, data)=>{console.log(JSON.parse(data).length)})\"" \
|
||||||
"nu -c 'open {data_path} | length'"
|
"nu -c 'open {data_path} | length'"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use std::fs::read_to_string;
|
use std::{fs::File, io::Read};
|
||||||
|
|
||||||
use enum_iterator::{all, Sequence};
|
use enum_iterator::{all, Sequence};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@ -46,7 +46,11 @@ impl Callable for Fs {
|
|||||||
RuntimeError::expect_argument_amount(self.name(), 1, arguments.len())?;
|
RuntimeError::expect_argument_amount(self.name(), 1, arguments.len())?;
|
||||||
|
|
||||||
let path = arguments.first().unwrap().as_string()?;
|
let path = arguments.first().unwrap().as_string()?;
|
||||||
let file_content = read_to_string(path.as_str())?;
|
let mut file = File::open(path)?;
|
||||||
|
let file_size = file.metadata()?.len() as usize;
|
||||||
|
let mut file_content = String::with_capacity(file_size);
|
||||||
|
|
||||||
|
file.read_to_string(&mut file_content)?;
|
||||||
|
|
||||||
Ok(Value::string(file_content))
|
Ok(Value::string(file_content))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user