Comments (7)
fn error() -> Result<Module> {
let mut module = Module::with_crate_item("std", ["error"]);
fn display_error(error: &rune::Error, buf: &mut String) -> fmt::Result {
write!(buf, "{error:?}")
}
module.ty::<rune::Error>()?;
module.associated_function(Protocol::STRING_DISPLAY, display_error)?;
Ok(module)
}
from rune.
I'm not sure I want rune::Error
to be a type integrated into rune scripts right now. The std::error::Error
is also a very generic location. But let's discuss!
from rune.
it is the current location actually
Line 86 in e5b7a3a
from rune.
Yeah, I did not remember that. Must be a hangover from old functions that could just "error". I'd honestly be prone to removing it. 🤔
from rune.
It would be neat though to have something to easily produce readable errors, and anyhow is quite simple to use :D. Another thing is that the hash is really not that easily understood as the display for anyhow is missing :D
Error: Missing function with hash
0x811b62957ea9d9f9
I'd be fine with having it in e.g. an anyhow
module in rune-modules
but without this e.g. the toml parser doesn't produce readable errors IIRC.
from rune.
Ah. So readable errors can be produced: Anything can be used as an error in Rune, and if it implements STRING_DISPLAY
which is expected by errors, it can be printed.
What anyhow gives you is stacktraces and the ability to wrap any error. If those added capabilities aren't used, they don't need to be their own type.
from rune.
What anyhow gives you is stacktraces and the ability to wrap any error. If those added capabilities aren't use, they don't need to be their own type.
Yes, for sure, and one probably should have a custom error type at some point, this would just be a way to get easily started, and the problem would be that only rune could implement Any
for anyhow::Error
and therefor would need to decide where it lives. Otherwise, one would need to make a wrapper around it.
from rune.
Related Issues (20)
- `rune fmt` removes indent of comments
- Unsound and unmaintained dependency: atty HOT 4
- Can't get custom language server support to work HOT 7
- `println!` macro has confusing error message when the first argument isn't a string literal
- Feature request: optional type annotations (to benefit LSP mostly) HOT 2
- Feature request: Warn about unused Result HOT 1
- rune_modules 0.13.3: Incorrect dependencies between features
- More descriptive errors (file and line, what it was trying to do) HOT 4
- Formatting screwup on inline block comment HOT 1
- Strange formatting on comment at end of block
- Flaky auto-formatting in vscode / Rune LSP crashes
- Broken auto-formatting for consecutive single line comments HOT 2
- Panic in rune-internal tracing logging while formatting anyhow `Result` wrapped in rune `Value` HOT 5
- Silly auto-formatting for chained method calls / builder pattern HOT 1
- Output capture on process in rune-modules is non-functional HOT 2
- Can not use vm_result on function taking `&mut self`
- Runes `std::collections::HashMap` is not accessible from rust extension types
- Missing docs for `#[rune::function(keep)]` HOT 2
- `#[rune::function]` fails when adding a 6th argument HOT 5
- Feature request: More accurate types in generated rune API documentation HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rune.