wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 55  →  ?path2? @ 56
/Languages/CSV.cs
@@ -101,6 +101,12 @@
/// <remarks>compliant with RFC 4180</remarks>
public static IEnumerable<string> ToEnumerable(string csv)
{
if (csv == null)
{
yield return string.Empty;
yield break;
}
 
var s = new Stack<char>();
var m = new StringBuilder();
for (var i = 0; i < csv.Length; ++i)
/Languages/KeyValue.cs
@@ -6,7 +6,10 @@
 
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace wasSharp.Languages
{
@@ -16,7 +19,7 @@
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Returns the value of a key from a key-value data string.
/// Returns the value of a key from a key-value data string.
/// </summary>
/// <returns>true if the key was found in data</returns>
public static string Get(string key, string data)
@@ -33,11 +36,11 @@
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Returns a key-value data string with a key set to a given value.
/// Returns a key-value data string with a key set to a given value.
/// </summary>
/// <returns>
/// a key-value data string or the empty string if either key or
/// value are empty
/// a key-value data string or the empty string if either key or
/// value are empty
/// </returns>
public static string Set(string key, string value, string data)
{
@@ -52,7 +55,7 @@
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Deletes a key-value pair from a string referenced by a key.
/// Deletes a key-value pair from a string referenced by a key.
/// </summary>
/// <returns>a key-value pair string</returns>
public static string Delete(string key, string data)
@@ -68,7 +71,7 @@
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Decodes key-value pair data to a dictionary.
/// Decodes key-value pair data to a dictionary.
/// </summary>
/// <returns>a dictionary containing the keys and values</returns>
public static Dictionary<string, string> Decode(string data)
@@ -90,7 +93,7 @@
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Serialises a dictionary to key-value data.
/// Serialises a dictionary to key-value data.
/// </summary>
/// <returns>a key-value data encoded string</returns>
public static string Encode(Dictionary<string, string> data)
@@ -102,8 +105,9 @@
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Serialises a dictionary to key-value data.
/// Serializes a dictionary to key-value data.
/// </summary>
/// <param name="data">an input string</param>
/// <returns>a key-value data encoded string</returns>
public static string Encode(IEnumerable<KeyValuePair<string, string>> data)
{
@@ -111,10 +115,23 @@
}
 
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2018 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Asynchronously serializes a dictionary to key-value data.
/// </summary>
/// <param name="data">an input string</param>
/// <returns>a key-value data encoded string</returns>
public static string Encode(IEnumerable<KeyValuePair<Task<string>, Task<string>>> data)
{
return string.Join("&", data.AsParallel().Select(o => string.Join("=", o.Key.Result, o.Value.Result)));
}
 
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Escapes a dictionary's keys and values for sending as POST data.
/// Escapes a dictionary's keys and values for sending as POST data.
/// </summary>
public static IEnumerable<KeyValuePair<string, string>> Escape(IEnumerable<KeyValuePair<string, string>> data,
Func<string, string> func)
@@ -121,5 +138,17 @@
{
return data.AsParallel().ToDictionary(o => func(o.Key), p => func(p.Value));
}
 
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2014 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Escapes a dictionary's keys and values for sending as POST data.
/// </summary>
public static IEnumerable<KeyValuePair<Task<string>, Task<string>>> EscapeAsync(IEnumerable<KeyValuePair<string, string>> data,
Func<string, Task<string>> func)
{
return data.AsParallel().ToDictionary(async o => await func(o.Key), async p => await func(p.Value));
}
}
}