39
votes

Why does ParseBoolError have the _priv field:

pub struct ParseBoolError {
    _priv: (),
}

I don't think that the _priv field is used.

1

1 Answers

39
votes

You can't create an instance of a struct if it has private fields. This is just a trick to prevent ParseBoolError from being constructed in user code.

One reason to do this is for forwards compatibility. If users could create it with:

let error = ParseBoolError {};

then a future version of ParseBoolError couldn't add fields without breaking that code.