Write out the high-level API I need.

This commit is contained in:
Pieter-Jan Briers
2022-03-28 01:13:24 +02:00
parent abe853722d
commit d19f9c9e5b
7 changed files with 285 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
using static SpaceWizards.Sodium.Interop.Libsodium;
namespace SpaceWizards.Sodium;
public static class SodiumCore
{
/// <summary>
/// Directly call <see cref="sodium_init"/>.
/// </summary>
/// <returns>0 on success, 1 if already initialized, -1 on initialize failure.</returns>
/// <seealso cref="EnsureInit"/>
public static int Init()
{
return sodium_init();
}
/// <summary>
/// Try to ensure libsodium is initialized, throwing if it fails to initialize.
/// </summary>
/// <exception cref="SodiumInitException">Thrown if initialization of libsodium failed.</exception>
public static void EnsureInit()
{
if (Init() == -1)
throw new SodiumInitException("Failed to init libsodium!");
}
}