yakui icon indicating copy to clipboard operation
yakui copied to clipboard

Error handling

Open Uriopass opened this issue 1 year ago • 1 comments

Sometimes parameter don't make sense: negative radius, flex=0 for a spacer.

I also think of infinitely sized objects that can crash the painter in debug (overflow error when building the rect).

What should be the strategy to help the user?

I can think of a few ways:

  • debug_assert! or log::error at the right places
  • Newtypes like NonZeroX or PositiveX (not very ergonomic)
  • Some kind of debug mode, like an inspector that could highlight issues/sizes/constraints

Uriopass avatar Dec 24 '23 11:12 Uriopass

I like the idea of having a debug mode like Flutter's that highlights issues. I think it's a little unintuitive to debug Flutter issues in practice, so I wonder how we could better surface errors and warnings.

I wonder if the best way to do that is as part of some larger "yakui inspector" project.

What do you think about having debug log::error/warn variants that log only once per call site within a given widget? We could keep around a set of the log messages that have happened, keyed by the address of &'static std::panic::Location. That'd give us an easy way to surface error and warning messages without blowing up someone's console.

LPGhatguy avatar Dec 27 '23 02:12 LPGhatguy