purebred-mua / purebred

A terminal based mail user agent based on notmuch
GNU Affero General Public License v3.0
139 stars 19 forks source link

simplify configuration type #453

Closed frasertweedale closed 2 years ago

frasertweedale commented 2 years ago

Several fields in the base configuration type are abstract, to allow user customisation. The UserConfiguration type synonym instantiates these fields at IO ... so that users can provide an alternative IO action that yields the desired final value(s). During launch, purebred executes these actions to produce the final configuration record.

Thanks to the plugin system and ConfigHook, we can now simplify the design and implementation: