tree 58eb89df0f682cfde971ad34bd8784677198dcb6
parent dc35e3073a4395aee9fa04b9bc4b259bca539836
author Patrick Williams <patrick@stwcx.xyz> 1730945983 -0500
committer Patrick Williams <patrick@stwcx.xyz> 1731088199 -0500

lg2: commit: simplify commit functions

Eliminate the template indirection for the commit function in favor
of a base-class overload.  There was previously a public template
specialization of `lg2::commit` and a private base-class implementation
(in the `details` namespace).  The template implementations provided
no stronger type-checking, since it was already a concept requiring
inheritance from the base-class.  The template precluded simple code
such as:

```cpp
    try
    {
        //...
    }
    catch (const sdbusplus::exception::generated_event_base& e)
    {
        lg2::commit(e);
    }
```

By making the base-class types public, rather than hidden in the
details namespace, and removing the templates, the code is simpler
and more usable.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: If0a3e1331eff36aec4b9f7e4950636360d59306e
