namespace AIStudio.Tools.ToolCallingSystem;
public static class SafeSearchPolicyExtensions
{
///
/// The value SearXNG expects for its safesearch parameter.
///
///
/// SearXNG takes the level as a number. That number stays here, at the edge towards the
/// search engine, instead of travelling through the settings where nobody can read it.
///
public static string ToSearXNGValue(this SafeSearchPolicy policy) => policy switch
{
SafeSearchPolicy.OFF => "0",
SafeSearchPolicy.MODERATE => "1",
SafeSearchPolicy.STRICT => "2",
_ => "0",
};
///
/// The value Tavily expects for its safe search parameter.
///
///
/// Tavily knows filtering only as on or off, so a moderate policy is filtered as strictly as
/// a strict one. Of the two ways to round that, filtering more than was asked for is the one
/// that cannot surprise anyone.
///
public static bool ToTavilyValue(this SafeSearchPolicy policy) => policy is not SafeSearchPolicy.OFF;
}