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)
- Support `derive(Any)` type protocols HOT 1
- Cannot mutate nested field HOT 2
- Using a dedicated enum for the `Try` protocol HOT 2
- "halted for unexpected reason `awaited`" Error HOT 7
- Should `#[rune::function]` be associated if function returns `Self` HOT 1
- Add default `T=()` to `rune::Result` HOT 1
- Modify a vm function
- Feature request: Traits HOT 3
- Support pattern matching which is open `..` in the middle of an array HOT 1
- Memory sandboxing
- Feature request: Support autocomplete for Ace editor
- Function Pointers HOT 2
- 0.13.0 release build failure HOT 7
- Documentation enhancements HOT 1
- Bad link in rune-modules's README
- Support should_panic for rune tests HOT 3
- Error handling in built-in toml module HOT 3
- Feature request: Support variable swapping HOT 2
- Field not available to get on <struct> HOT 1
- WebAssembly HOT 2
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.