Giter VIP home page Giter VIP logo

Comments (7)

ModProg avatar ModProg commented on July 22, 2024
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.

udoprog avatar udoprog commented on July 22, 2024

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.

ModProg avatar ModProg commented on July 22, 2024

it is the current location actually

crate::__internal_impl_any!(::std::error, crate::no_std::Error);

from rune.

udoprog avatar udoprog commented on July 22, 2024

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.

ModProg avatar ModProg commented on July 22, 2024

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.

udoprog avatar udoprog commented on July 22, 2024

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.

ModProg avatar ModProg commented on July 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.