From a2338dbb7ceea89440c124c32b3fff1b0f095d89 Mon Sep 17 00:00:00 2001 From: David 'Epper' Marshall Date: Sat, 30 Apr 2022 05:31:23 -0400 Subject: [PATCH] docs: document more `builtin` functions/methods (#14229) --- examples/fibonacci.v | 2 +- vlib/builtin/builtin.c.v | 1 + vlib/builtin/int.v | 3 +++ vlib/builtin/js/builtin.v | 6 ++++++ vlib/builtin/option.v | 3 +++ vlib/encoding/csv/writer.v | 2 ++ vlib/encoding/utf8/utf8.v | 2 ++ vlib/time/format.v | 1 + 8 files changed, 19 insertions(+), 1 deletion(-) diff --git a/examples/fibonacci.v b/examples/fibonacci.v index 72e59c943..ddcabb872 100644 --- a/examples/fibonacci.v +++ b/examples/fibonacci.v @@ -22,7 +22,7 @@ fn main() { mut a := i64(0) mut b := i64(0) mut c := i64(1) - println(a + c + c) + println(a + b + c) for _ in 0 .. stop { // Set a and b to the next term a = b diff --git a/vlib/builtin/builtin.c.v b/vlib/builtin/builtin.c.v index 7a96816b1..bb0442cd0 100644 --- a/vlib/builtin/builtin.c.v +++ b/vlib/builtin/builtin.c.v @@ -64,6 +64,7 @@ fn panic_debug(line_no int, file string, mod string, fn_name string, s string) { vhalt() } +// panic_optional_not_set prints given optional not set and exits the process [noreturn] pub fn panic_optional_not_set(s string) { panic('optional not set ($s)') diff --git a/vlib/builtin/int.v b/vlib/builtin/int.v index a387be5f4..8a27c1e09 100644 --- a/vlib/builtin/int.v +++ b/vlib/builtin/int.v @@ -17,14 +17,17 @@ pub fn ptr_str(ptr voidptr) string { return buf1 } +// str returns string equivalent of x pub fn (x isize) str() string { return i64(x).str() } +// str returns string equivalent of x pub fn (x usize) str() string { return u64(x).str() } +// str returns string equivalent of cptr pub fn (cptr &char) str() string { return u64(cptr).hex() } diff --git a/vlib/builtin/js/builtin.v b/vlib/builtin/js/builtin.v index b491f30ae..90d5e3e0c 100644 --- a/vlib/builtin/js/builtin.v +++ b/vlib/builtin/js/builtin.v @@ -22,6 +22,7 @@ pub interface IError { code() int } +// str returns the message of IError pub fn (err IError) str() string { return match err { None__ { @@ -50,10 +51,12 @@ pub fn (err IError) str() string { // Error is the empty default implementation of `IError`. pub struct Error {} +// msg returns the message of Error pub fn (err Error) msg() string { return '' } +// code returns the code of Error pub fn (err Error) code() int { return 0 } @@ -65,10 +68,12 @@ pub: code int } +// msg returns the message of the MessageError pub fn (err MessageError) msg() string { return err.msg } +// code returns the code of MessageError pub fn (err MessageError) code() int { return err.code } @@ -88,6 +93,7 @@ pub struct Option { err IError = none__ } +// str returns the Option type: ok, none, or error pub fn (o Option) str() string { if o.state == 0 { return 'Option{ ok }' diff --git a/vlib/builtin/option.v b/vlib/builtin/option.v index d487595d8..444b5e3c1 100644 --- a/vlib/builtin/option.v +++ b/vlib/builtin/option.v @@ -13,6 +13,7 @@ pub interface IError { code() int } +// str returns the message of IError pub fn (err IError) str() string { return match err { None__ { @@ -52,10 +53,12 @@ pub: code int } +// msg returns the message of MessageError pub fn (err MessageError) msg() string { return err.msg } +// code returns the code of MessageError pub fn (err MessageError) code() int { return err.code } diff --git a/vlib/encoding/csv/writer.v b/vlib/encoding/csv/writer.v index b46c9d68e..c2bb0ced2 100644 --- a/vlib/encoding/csv/writer.v +++ b/vlib/encoding/csv/writer.v @@ -13,6 +13,7 @@ pub mut: delimiter u8 } +// new_writer returns a reference to a Writer pub fn new_writer() &Writer { return &Writer{ delimiter: `,` @@ -75,6 +76,7 @@ fn (w &Writer) field_needs_quotes(field string) bool { return false } +// str returns the writer contents pub fn (mut w Writer) str() string { return w.sb.str() } diff --git a/vlib/encoding/utf8/utf8.v b/vlib/encoding/utf8/utf8.v index d4e885e41..b7f819531 100644 --- a/vlib/encoding/utf8/utf8.v +++ b/vlib/encoding/utf8/utf8.v @@ -7,10 +7,12 @@ mut: failed bool } +// validate_str reports if str consists of valid UTF-8 runes pub fn validate_str(str string) bool { return validate(str.str, str.len) } +// validate reports if data consists of valid UTF-8 runes pub fn validate(data &u8, len int) bool { mut state := Utf8State{} for i := 0; i < len; i++ { diff --git a/vlib/time/format.v b/vlib/time/format.v index 17c4d5116..baa141a68 100644 --- a/vlib/time/format.v +++ b/vlib/time/format.v @@ -85,6 +85,7 @@ const tokens_3 = ['MMM', 'DDD', 'ZZZ', 'ddd'] const tokens_4 = ['MMMM', 'DDDD', 'DDDo', 'dddd', 'YYYY'] // custom_format returns a date with custom format +// // | | Token | Output | // | :----------- | -------: | :--------- | // | Month | M | 1 2 ... 11 12 | -- 2.30.2