Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,35 @@
|
||||
// Copyright (c) 2021 Lars Pontoppidan. All rights reserved.
|
||||
// Use of this source code is governed by an MIT license
|
||||
// that can be found in the LICENSE file.
|
||||
module input
|
||||
|
||||
import os
|
||||
|
||||
// Config is used to configure input to the toml module.
|
||||
// Only one of the fields `text` and `file_path` is allowed to be set at time of configuration.
|
||||
pub struct Config {
|
||||
pub:
|
||||
text string // TOML text
|
||||
file_path string // '/path/to/file.toml'
|
||||
}
|
||||
|
||||
// read_input returns either Config.text or the read file contents of Config.file_path
|
||||
// depending on which one is not empty.
|
||||
pub fn (c Config) read_input() !string {
|
||||
if c.file_path != '' && c.text != '' {
|
||||
return error(@MOD + '.' + @FN +
|
||||
' ${typeof(c).name} should contain only one of the fields `file_path` OR `text` filled out')
|
||||
}
|
||||
if c.file_path == '' && c.text == '' {
|
||||
// TODO: passing both empty is used *a lot* by `./v vlib/toml/tests/toml_lang_test.v`; investigate why.
|
||||
return ''
|
||||
}
|
||||
if c.text != '' {
|
||||
return c.text
|
||||
}
|
||||
text := os.read_file(c.file_path) or {
|
||||
return error(@MOD + '.' + @STRUCT + '.' + @FN +
|
||||
' Could not read "${c.file_path}": "${err.msg()}"')
|
||||
}
|
||||
return text
|
||||
}
|
||||
Reference in new issue
Block a user