- Notifications
You must be signed in to change notification settings - Fork232
Description
I came across some confusing error messages while working onhttps://github.com/AviKav/silicon.ex:
I got** (ErlangError) Erlang error: :invalid_struct when I forgot to rename
#[derive(NifStruct)]#[module ="Silicon.FormatOptions"]structFormatOptions{
to
#[derive(NifStruct)]#[module ="Silicon.Options.Format"]structFormatOptions{
I've gotten
** (ErlangError) Erlang error: "Could not decode field :image_options on %FormatOptions{}"for having the wrong value all the way inimage_options.shadow_adder.background.
%FormatOptions{} was a red herring since I thought it was an Elixir struct's old name that was hanging around for some reason, when it actuality it was a Rust type.
I think these error messages should be specific of where or what the issue is.
As of current I'd need to provide the user with a validation function in order to give useful error information.
This is a third place, in addition to typespecs and Rust types, where I'd need to maintain type information.
Unless something likehttps://github.com/Qqwy/elixir-type_check is used.