-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
44 lines (41 loc) · 2.96 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
active items:
replace macro with .ok_or_else()
manually format error messages instead of auto returning and debug formatting (should also print in red color the word "error:" like cargo run; should also manually set error code of 1), and remove some #derives as a result
add tests for each error condition of time_fixed_prec
add state export functions to rngengine trait
accept integer for seed if it doesn't require a bigint
add cgcsprng2, well512a and 3 others (using reference implementation and thus requiring adding of a legal section to this program), xorshift128+, xoroshiro256++
add null cache, byte cache, bit cache
add assembly trng based on rdrand or rdseed (https://www.intel.com/content/www/us/en/developer/articles/guide/intel-digital-random-number-generator-drng-software-implementation-guide.html, https://doc.rust-lang.org/reference/inline-assembly.html)
split main code into parser that produces an enum and runner that takes in the enum; parser code can then be tested (in a seperate subfolder in test); potentially can also test actual output of command by making output a string and then checking for equality
low priority:
reconcile the 2 inexplicably different types in the current_time subcommand
improve argument handling of main.rs as seed isnt needed sometimes (make seed be nullable value and check for its existence when necessary)
make sleep function call Sleep(INFINITE) function on windows (https://github.com/microsoft/windows-rs)
figure out how to move cgrandom into a library crate
if current_time command errors getting the timezone, just don't show timezone data (so properly handling errors)
error on extra arguments always
add extern crate lines to modules
add linting for required int type hints, required extern crates
add output format option for hex output rngs to show as comma seperated u8 array instead
reduce visibility of pubs to minimum valid visibility
long term items:
subcommands:
resource allocate
fs operations
language parser / calculator using bigints and any other type
null command
command to error with a given error code
cat command, but also accepting base64 input argument in addition to regular
simple web server that is http and just returns a 200 text/plain; charset=utf-8 with contents 'Simple Test Server\nCurrent Date is <ISO Date Format>'
curl-esque command
date command
parse date
get day of week
get difference between 2 datetimes
support for gregorian, julian, others, including leap seconds and relativistic corrections
add command to convert between calendar formats and absolute time (a special value that includes leap seconds), convert from that to unix epoch or ms epoch or google time, then on top of that apply a calendar system like julian or gregorian or islamic or something
debug subcommands:
delayed print (prints 1 thru 10 with a 1 second delay between each)
keep in mind:
if other tests for cgrandom are added other than the generators, then move current cgrandom tests into generators subfolder