New types NumericSexp and NumericScalar are added to handle both integer
and double. You can get a slice via as_slice_*() or an iterator via
iter_*().
#[savvy]
fn times_two(x: NumericSexp) -> savvy::Result<Sexp> {
let mut out = OwnedIntegerSexp::new(x.len())?;
for (i, v) in x.iter_i32().enumerate() {
let v = v?; // The item of iter_i32() is Result because the conversion can fail.
if v.is_na() {
out[i] = i32::na();
} else {
out[i] = v * 2;
}
}
out.into()
}
You can also use .into_typed() to handle integer and double differently.
Savvy now provides r_stdout() and r_stderr() to be used with interfaces
that require std::io::Write. Also, you can use savvy::log::env_logger() to
output logs to R's stderr. Here's an example usage:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps savvy from 0.5.3 to 0.6.3.
Changelog
Sourced from savvy's changelog.
... (truncated)
Commits
3f53e8b
chore: Release6435586
Accept more AsRef (#239)f8dfb08
Avoid unnecessary allocation on iter_i32() and iter_f64() of NumericSexp (#238)a0bc651
Logging (#237)62e3775
Add CHANGELOGb6a8bc0
Remove names arg of AltList's into_altrep()59b33a4
Accept [T] in addition to &[T] (#236)7bb78bb
AddNumericSexp
andNumericScalar
to handle both integer and real (#235)0a990d5
Merge branch 'main' of https://github.com/yutannihilation/savvy726158e
chore: ReleaseDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show