all: change optional to result of io (#16075)

This commit is contained in:
yuyi 2022-10-16 14:28:57 +08:00 committed by GitHub
parent 6e46933c55
commit f6844e9766
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
187 changed files with 1885 additions and 1874 deletions

View file

@ -31,21 +31,21 @@ pub:
pub type SimArgs = ParallelArgs | SequentialArgs
pub fn parse_args(config ParserSettings) ?SimArgs {
pub fn parse_args(config ParserSettings) !SimArgs {
if config.sequential {
args := parse_sequential_args()?
args := parse_sequential_args()!
return SimArgs(args)
} else {
args := parse_parallel_args(config.extra_workers)?
args := parse_parallel_args(config.extra_workers)!
return SimArgs(args)
}
}
fn parse_sequential_args() ?SequentialArgs {
fn parse_sequential_args() !SequentialArgs {
mut fp := flag.new_flag_parser(os.args)
fp.application('vps')
fp.version('v0.1.0')
fp.limit_free_args(0, 0)?
fp.limit_free_args(0, 0)!
fp.description('This is a pendulum simulation written in pure V')
fp.skip_executable()
@ -64,7 +64,7 @@ fn parse_sequential_args() ?SequentialArgs {
fp.finalize() or {
println(fp.usage())
return none
return error('none')
}
params := sim.sim_params(
@ -92,11 +92,11 @@ fn parse_sequential_args() ?SequentialArgs {
return args
}
fn parse_parallel_args(extra_workers int) ?ParallelArgs {
fn parse_parallel_args(extra_workers int) !ParallelArgs {
mut fp := flag.new_flag_parser(os.args)
fp.application('vps')
fp.version('v0.1.0')
fp.limit_free_args(0, 0)?
fp.limit_free_args(0, 0)!
fp.description('This is a pendulum simulation written in pure V')
fp.skip_executable()
@ -117,7 +117,7 @@ fn parse_parallel_args(extra_workers int) ?ParallelArgs {
fp.finalize() or {
println(fp.usage())
return none
return error('none')
}
params := sim.sim_params(

View file

@ -39,34 +39,34 @@ mut:
cache_size int
}
pub fn ppm_writer_for_fname(fname string, settings ImageSettings) ?&PPMWriter {
pub fn ppm_writer_for_fname(fname string, settings ImageSettings) !&PPMWriter {
mut writer := &PPMWriter{
cache_size: settings.cache_size
cache: []u8{cap: settings.cache_size}
}
writer.start_for_file(fname, settings)?
writer.start_for_file(fname, settings)!
return writer
}
pub fn (mut writer PPMWriter) start_for_file(fname string, settings ImageSettings) ? {
writer.file = os.create(fname)?
writer.file.writeln('P6 $settings.width $settings.height 255')?
pub fn (mut writer PPMWriter) start_for_file(fname string, settings ImageSettings) ! {
writer.file = os.create(fname)!
writer.file.writeln('P6 $settings.width $settings.height 255')!
}
pub fn (mut writer PPMWriter) handle_pixel(p gx.Color) ? {
pub fn (mut writer PPMWriter) handle_pixel(p gx.Color) ! {
if writer.cache.len >= writer.cache_size {
writer.write()?
writer.flush()?
writer.write()!
writer.flush()!
}
writer.cache << [p.r, p.g, p.b]
}
pub fn (mut writer PPMWriter) flush() ? {
pub fn (mut writer PPMWriter) flush() ! {
writer.cache.clear()
}
pub fn (mut writer PPMWriter) write() ? {
writer.file.write(writer.cache)?
pub fn (mut writer PPMWriter) write() ! {
writer.file.write(writer.cache)!
}
pub fn (mut writer PPMWriter) close() {

View file

@ -29,7 +29,7 @@ pub fn new_image_writer(mut writer PPMWriter, settings ImageSettings) &ImageWrit
}
}
pub fn (mut iw ImageWritter) handle(result sim.SimResult) ?int {
pub fn (mut iw ImageWritter) handle(result sim.SimResult) !int {
total_pixels := iw.settings.width * iw.settings.height
// find the closest magnet
@ -46,7 +46,7 @@ pub fn (mut iw ImageWritter) handle(result sim.SimResult) ?int {
if iw.current_index == total_pixels {
iw.writer.write() or { panic('Could not write image') }
return none
return error('none')
}
return iw.current_index

View file

@ -3,11 +3,11 @@ module sim
import benchmark
import term
pub type SimRequestHandler = fn (request &SimRequest) ?
pub type SimRequestHandler = fn (request &SimRequest) !
pub type SimStartHandler = fn () ?
pub type SimStartHandler = fn () !
pub type SimFinishHandler = fn () ?
pub type SimFinishHandler = fn () !
pub const (
default_width = 600