UNKNOWN
Project description
IDLite は開発中のプロジェクトです。 予告なく、下位互換性のない変更を行います。
背景
IDLite は、 Unity でモバイルオンラインゲームを作成するときに、 Unity C# で JSON を 扱うのが面倒なのを解決してくれるツールです。
固い protocol を使いたい場合は protocol buffer や thrift や msgpack idl がありますが、 これらは効率的にデータをパックするために、 {“キー”: 値} という構造ではなくて、 配列中の位置に意味をもたせているため、効率よりも Web 系のカジュアルな開発スタイルを 重視する場合には使いにくいことがあります。
JSON schema もありますが、これも複雑で学習が難しいものです。
LitJSON など、 JSON を手軽に扱える C# のライブラリはありますが、 リフレクションやジェネリクスに制限のある iOS では動かないケースがあります。
IDLite は、この隙間の需要を満たすためのものです。
サンプル
IDL
// ドキュメントコメント
// 複数行書けます.
enum Color {
red = 1,
green = 2,
blue = 3
};
# 無視されるコメント
// ボール
class Ball {
string? owner;
enum Color color;
float x; # x座標.
float y;
};
class Field {
List<Ball> balls;
};
生成されるコード
// This code is automatically generated.
// Don't edit this file directly.
using System;
using System.Collections.Generic;
namespace IDLite
{
/// <summary>
/// ドキュメントコメント
/// 複数行書けます.
/// </summary>
public enum Color
{
red = 1,
green = 2,
blue = 3
}
/// <summary>
/// ボール
/// </summary>
[Serializable]
public partial class Ball : IDLiteBase
{
public string owner;
public Color color;
public double x;
public double y;
public Ball(string owner, Color color, double x, double y)
{
this.owner = owner;
this.color = color;
this.x = x;
this.y = y;
}
public Ball(Dictionary<string, object> dict)
{
this.owner = ToNullableString(GetItem(dict, "owner"));
this.color = (Color)ToInt(GetItem(dict, "color"));
this.x = ToDouble(GetItem(dict, "x"));
this.y = ToDouble(GetItem(dict, "y"));
}
}
[Serializable]
public partial class Field : IDLiteBase
{
public List<Ball> balls;
public Field(List<Ball> balls)
{
this.balls = balls;
}
public Field(Dictionary<string, object> dict)
{
this.balls = GetList<Ball>(dict, "balls", (object o) => { return new Ball((Dictionary<string, object>)o); });
}
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
idlite-0.0.3.tar.gz
(6.1 kB
view details)
File details
Details for the file idlite-0.0.3.tar.gz
.
File metadata
- Download URL: idlite-0.0.3.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5bd41522a46f2c95bcd093a7ae41ba0d02d15da3f0cb6dd82fc66cdb56a4f3c |
|
MD5 | cfda8b4f6977eac1a3e9ff94532f654a |
|
BLAKE2b-256 | df55c2ebe34b65d9530d9dddd5d42d3951adaf2ce3d0f11cf5360d4538185c1c |