FIX: Clearer list for the wiki

This commit is contained in:
Nicolás Hatcher
2024-03-16 17:34:43 +01:00
parent 0029901ca3
commit a38ba93724
3 changed files with 208 additions and 195 deletions

View File

@@ -30,6 +30,10 @@ coverage:
CARGO_INCREMENTAL=0 RUSTFLAGS='-C instrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test CARGO_INCREMENTAL=0 RUSTFLAGS='-C instrument-coverage' LLVM_PROFILE_FILE='cargo-test-%p-%m.profraw' cargo test
grcov . --binary-path ./target/debug/deps/ -s . -t html --branch --ignore-not-existing --ignore '../*' --ignore "/*" -o target/coverage/html grcov . --binary-path ./target/debug/deps/ -s . -t html --branch --ignore-not-existing --ignore '../*' --ignore "/*" -o target/coverage/html
update-docs:
cargo build
./target/debug/documentation -o wiki/functions.md
docs: docs:
cargo doc --no-deps cargo doc --no-deps

View File

@@ -1,192 +1,192 @@
AND # List of Functions implemented in IronCalc\n* AND
FALSE * FALSE
IF * IF
IFERROR * IFERROR
IFNA * IFNA
IFS * IFS
NOT * NOT
OR * OR
SWITCH * SWITCH
TRUE * TRUE
XOR * XOR
SIN * SIN
COS * COS
TAN * TAN
ASIN * ASIN
ACOS * ACOS
ATAN * ATAN
SINH * SINH
COSH * COSH
TANH * TANH
ASINH * ASINH
ACOSH * ACOSH
ATANH * ATANH
ABS * ABS
PI * PI
SQRT * SQRT
SQRTPI * SQRTPI
ATAN2 * ATAN2
POWER * POWER
MAX * MAX
MIN * MIN
PRODUCT * PRODUCT
RAND * RAND
RANDBETWEEN * RANDBETWEEN
ROUND * ROUND
ROUNDDOWN * ROUNDDOWN
ROUNDUP * ROUNDUP
SUM * SUM
SUMIF * SUMIF
SUMIFS * SUMIFS
CHOOSE * CHOOSE
COLUMN * COLUMN
COLUMNS * COLUMNS
INDEX * INDEX
INDIRECT * INDIRECT
HLOOKUP * HLOOKUP
LOOKUP * LOOKUP
MATCH * MATCH
OFFSET * OFFSET
ROW * ROW
ROWS * ROWS
VLOOKUP * VLOOKUP
XLOOKUP * XLOOKUP
CONCATENATE * CONCATENATE
EXACT * EXACT
VALUE * VALUE
T * T
VALUETOTEXT * VALUETOTEXT
CONCAT * CONCAT
FIND * FIND
LEFT * LEFT
LEN * LEN
LOWER * LOWER
MID * MID
RIGHT * RIGHT
SEARCH * SEARCH
TEXT * TEXT
TRIM * TRIM
UPPER * UPPER
ISNUMBER * ISNUMBER
ISNONTEXT * ISNONTEXT
ISTEXT * ISTEXT
ISLOGICAL * ISLOGICAL
ISBLANK * ISBLANK
ISERR * ISERR
ISERROR * ISERROR
ISNA * ISNA
NA * NA
ISREF * ISREF
ISODD * ISODD
ISEVEN * ISEVEN
ERROR.TYPE * ERROR.TYPE
ISFORMULA * ISFORMULA
TYPE * TYPE
SHEET * SHEET
AVERAGE * AVERAGE
AVERAGEA * AVERAGEA
AVERAGEIF * AVERAGEIF
AVERAGEIFS * AVERAGEIFS
COUNT * COUNT
COUNTA * COUNTA
COUNTBLANK * COUNTBLANK
COUNTIF * COUNTIF
COUNTIFS * COUNTIFS
MAXIFS * MAXIFS
MINIFS * MINIFS
YEAR * YEAR
DAY * DAY
MONTH * MONTH
EOMONTH * EOMONTH
DATE * DATE
EDATE * EDATE
TODAY * TODAY
NOW * NOW
PMT * PMT
PV * PV
RATE * RATE
NPER * NPER
FV * FV
PPMT * PPMT
IPMT * IPMT
NPV * NPV
MIRR * MIRR
IRR * IRR
XIRR * XIRR
XNPV * XNPV
REPT * REPT
TEXTAFTER * TEXTAFTER
TEXTBEFORE * TEXTBEFORE
TEXTJOIN * TEXTJOIN
SUBSTITUTE * SUBSTITUTE
ISPMT * ISPMT
RRI * RRI
SLN * SLN
SYD * SYD
NOMINAL * NOMINAL
EFFECT * EFFECT
PDURATION * PDURATION
TBILLYIELD * TBILLYIELD
TBILLPRICE * TBILLPRICE
TBILLEQ * TBILLEQ
DOLLARDE * DOLLARDE
DOLLARFR * DOLLARFR
DDB * DDB
DB * DB
CUMPRINC * CUMPRINC
CUMIPMT * CUMIPMT
BESSELI * BESSELI
BESSELJ * BESSELJ
BESSELK * BESSELK
BESSELY * BESSELY
ERF * ERF
ERF.PRECISE * ERF.PRECISE
ERFC * ERFC
ERFC.PRECISE * ERFC.PRECISE
BIN2DEC * BIN2DEC
BIN2HEX * BIN2HEX
BIN2OCT * BIN2OCT
DEC2BIN * DEC2BIN
DEC2HEX * DEC2HEX
DEC2OCT * DEC2OCT
HEX2BIN * HEX2BIN
HEX2DEC * HEX2DEC
HEX2OCT * HEX2OCT
OCT2BIN * OCT2BIN
OCT2DEC * OCT2DEC
OCT2HEX * OCT2HEX
BITAND * BITAND
BITLSHIFT * BITLSHIFT
BITOR * BITOR
BITRSHIFT * BITRSHIFT
BITXOR * BITXOR
COMPLEX * COMPLEX
IMABS * IMABS
IMAGINARY * IMAGINARY
IMARGUMENT * IMARGUMENT
IMCONJUGATE * IMCONJUGATE
IMCOS * IMCOS
IMCOSH * IMCOSH
IMCOT * IMCOT
IMCSC * IMCSC
IMCSCH * IMCSCH
IMDIV * IMDIV
IMEXP * IMEXP
IMLN * IMLN
IMLOG10 * IMLOG10
IMLOG2 * IMLOG2
IMPOWER * IMPOWER
IMPRODUCT * IMPRODUCT
IMREAL * IMREAL
IMSEC * IMSEC
IMSECH * IMSECH
IMSIN * IMSIN
IMSINH * IMSINH
IMSQRT * IMSQRT
IMSUB * IMSUB
IMSUM * IMSUM
IMTAN * IMTAN
CONVERT * CONVERT
DELTA * DELTA
GESTEP * GESTEP
SUBTOTAL * SUBTOTAL

View File

@@ -8,10 +8,19 @@ use std::fs;
use ironcalc_base::model::Model; use ironcalc_base::model::Model;
fn main() { fn main() {
let args: Vec<_> = std::env::args().collect();
let output_file = if args.len() == 3 {
&args[2]
} else if args.len() == 1 {
"functions.md"
} else {
panic!("Usage: {} -o <file.md>", args[0]);
};
let mut doc = Vec::new(); let mut doc = Vec::new();
doc.push(r#"# List of Functions implemented in IronCalc\n"#.to_owned());
for function in Model::documentation() { for function in Model::documentation() {
doc.push(function.name); doc.push(format!("* {}\n", &function.name));
} }
let data = doc.join("\n"); let data = doc.join("");
fs::write("functions.md", data).expect("Unable to write file"); fs::write(output_file, data).expect("Unable to write file");
} }