Trivial 0.4.2

There is a newer version of this package available.
See the version list below for details.
The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Trivial --version 0.4.2
NuGet\Install-Package Trivial -Version 0.4.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Trivial" Version="0.4.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Trivial --version 0.4.2
#r "nuget: Trivial, 0.4.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Trivial as a Cake Addin
#addin nuget:?package=Trivial&version=0.4.2

// Install Trivial as a Cake Tool
#tool nuget:?package=Trivial&version=0.4.2

Trivial

This library includes utilities and services for tasks, IO, security, etc.

Tasks

Just add following namespace to your code file to use.

using Trivial.Tasks;

Debounce

Maybe a handler will be asked to process several times in a short time but you just want to process once at the last time because the previous ones are obsolete. A sample is real-time search. You can use following method to do so.

var task = HitTask.Debound(() => {
    // Do something...
}, TimeSpan.FromMilliseconds(200));

// Somewhere to raise.
task.ProcessAsync();

Throttle

A handler to be frozen for a while after it has processed.

var task = HitTask.Throttle(() => {
    // Do something...
}, TimeSpan.FromMilliseconds(10000));

// Somewhere to raise.
task.ProcessAsync();

Multiple

A handler to process for the specific times and it will be reset after a while.

var task = HitTask.Multiple(() => {
    // Do something...
}, 10, null, TimeSpan.FromMilliseconds(200));

// Somewhere to raise.
task.ProcessAsync();

Times

A handler to process for the specific times only and it will be reset after a while. A sample is double click.

var task = HitTask.Times(() => {
    // Do something...
}, 2, 2, TimeSpan.FromMilliseconds(200));

// Somewhere to raise.
task.ProcessAsync();

Retry

You can create a linear retry policy or even a customized to process an action with the specific retry policy. And you can use ObservableTask to observe the state of an action processing.

Mathematics

Just add following namespace to your code file to use.

using Trivial.Maths;

Arithmetic

There a lot of arithmetic functions.

Arithmetic.IsPrime(2147483647); // True
Arithmetic.IsPrime(21474836479); // False
await Arithmetic.IsPrimeAsync(2305843009213693951); // False

Arithmetic.Factorial(10); // 3628800

Arithmetic.Gcd(192, 128); // 64
Arithmetic.Lcm(192, 128); // 384

Numbers

You can get the number symbols as you want.

You can also get the number string in English words.

EnglishNumber.Default.ToString(12345.67);
// twelve thousand three hundred and forty-five point six seven

EnglishNumber.Default.ToString(12345, true);
// one two three four five

EnglishNumber.Default.ToApproximationString(1234567);
// 1.2M

And also for Chinese and Japanese.

ChineseNumber.Simplified.ToString(12345.67);
// 一万两千三百四十五点六七

ChineseNumber.SimplifiedUppercase.ToString(12345, true);
// 壹贰叄肆伍

JapaneseNumber.Default.ToApproximationString(1234567);
// 123.5万

Angle and polar point

  • Angle Angle.
  • PolarPoint The point in polar coordinates.

Set

  • NullableValueSimpleInterval<T> Interval, such as [20, 100).

Rectangular coordinates

  • OneDimensionalPoint The point in 1D (line) coordinates.
  • TwoDimensionalPoint The point in 2D (flat) coordinates.
  • ThreeDimensionalPoint The point in 3D (stereoscophic) coordinates.
  • FourDimensionalPoint The point in 4D (spacetime) coordinates.

Network

Contains the helper functions and extension functions for network, such as HTTP web client and its content.

using Trivial.Net;

And you can also use JsonHttpClient to serialize the JSON format response with retry policy supports. And HttpUri for HTTP URI fields accessing.

Security

Just add following namespace to your code file to use.

using Trivial.Security;

RSA

You can convert a PEM (OpenSSL RSA key) or an XML string to the RSAParameters class.

var parameters = RSAUtility.Parse(pem);

And you can convert back by using the extension method ToPrivatePEMString or ToPublicPEMString. And also you can use the extension method ToXElement to export the XML.

Symmetric

You can encrypt and decrypt a string by symmetric algorithm.

// AES sample.
var original = "Original secret string";
var cipher = SymmetricUtilities.Encrypt(Aes.Create, original, key, iv);
var back = SymmetricUtilities.Decrypt(Aes.Create, cipher, key, iv); // back == original

Hash

For hash, you can call HashUtilities.ComputeHashString function to get hash and HashUtilities.Verify to verify.

Access token

We also provide a set of tools for OAuth including following models.

  • TokenInfo The access token and other properties.
  • AppAccessingKey The app identifier and secret key.

And you can implement the OpenIdTokenClient abstract class or TokenResolver abstract class to get and maintain the access token.

Secure string utiltiy

You can use the extension methods SecureStringUtiltiy to convert between SecureString and String/StringBuilder/Byte[].

IO

Contains the helper functions and extension methods for FileInfo and Stream.

using Trivial.IO;

Geography

Contains the models of geography.

using Trivial.Geography;

Geolocation

You can use Geolocation, Latitude, Longitude and other models for geolocation information.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (10)

Showing the top 5 NuGet packages that depend on Trivial:

Package Downloads
Trivial.Console

The console utilities and rich user interface console.

Trivial.WindowsKit

Some advanced visual controls and utilities for Windows app.

NuScien

A core library of NuScien framework which provides a solution to build community and enterprise projects based on resource entity and accessories with ACL and CMS built-in.

Trivial.Chemistry

A library with basic chemical models.

Trivial.Web

A library for web API.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
8.0.0-preview8 77 4/13/2024
8.0.0-preview7 78 3/7/2024
8.0.0-preview6 83 3/6/2024
8.0.0-preview5 70 3/1/2024
8.0.0-preview4 76 2/29/2024
8.0.0-preview3 70 2/28/2024
8.0.0-preview2 73 2/27/2024
8.0.0-preview1 94 2/21/2024
7.2.0 1,359 11/16/2023
7.2.0-preview1 415 8/1/2023
7.1.2 1,263 5/10/2023
7.1.1 390 5/10/2023
7.1.0 519 5/8/2023
7.0.0 1,278 1/20/2023
6.6.0 3,506 11/9/2022
6.5.6 1,245 10/10/2022
6.5.5 611 10/9/2022
6.5.4 954 8/10/2022
6.5.0 680 6/17/2022
6.4.0 2,729 4/14/2022
6.3.0 1,923 3/8/2022
6.2.0 4,472 1/30/2022
6.1.0 1,846 1/23/2022
6.0.0 1,333 1/1/2022
5.2.0 4,485 12/15/2021
5.1.1 593 12/3/2021
5.1.0 1,304 12/2/2021
5.0.0 1,308 11/27/2021
4.0.0 1,049 11/9/2021
3.9.0 1,281 12/15/2021
3.8.0 1,168 11/9/2021
3.7.2 9,046 4/22/2021
3.7.0 1,560 3/17/2021
3.6.2 906 3/17/2021
3.6.0 6,467 11/12/2020
3.5.2 7,251 4/13/2020
3.5.1 1,444 4/12/2020
3.5.0 1,431 4/1/2020
3.4.3 1,371 3/20/2020
3.4.2 1,326 3/12/2020
3.4.1 1,369 2/25/2020
3.4.0 1,669 2/20/2020
3.3.0 1,744 2/14/2020
3.2.0 2,061 1/22/2020
3.1.0 2,125 12/30/2019
3.0.1 1,970 12/26/2019
2.2.0 1,159 2/19/2020
2.1.0 1,669 12/24/2019
2.0.3 1,521 12/3/2019
1.2.0 26,562 5/20/2019
1.1.0 2,096 5/8/2019
1.0.0 4,138 5/1/2019