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;
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
{
/// <summary>
/// ボールの持ち主
/// </summary>
public string owner;
/// <summary>
/// ボールの色
/// </summary>
public Color color;
/// <summary>
/// 座標
/// </summary>
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 = ParseNullableString(GetItem(dict, "owner"));
this.color = (Color)ParseInt(GetItem(dict, "color"));
this.x = ParseDouble(GetItem(dict, "x"));
this.y = ParseDouble(GetItem(dict, "y"));
}
public override string ToString()
{
return "Ball(owner=" + owner + ", color=" + color + ", x=" + x + ", y=" + 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); });
}
public override string ToString()
{
return "Field(balls=" + balls + ")";
}
}
}
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.9.tar.gz
(7.2 kB
view details)
Built Distribution
idlite-0.0.9-py34-none-any.whl
(10.4 kB
view details)
File details
Details for the file idlite-0.0.9.tar.gz
.
File metadata
- Download URL: idlite-0.0.9.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b83bd19636ec3f2f294775fed44a422bd6bc48394367bda8678a40d06f3c4902 |
|
MD5 | b903ba879d286108a355efd441e84e83 |
|
BLAKE2b-256 | cd9e06a66681aa603353298daec8e1b960edda8c789ae5bcf19b406935f8c953 |
File details
Details for the file idlite-0.0.9-py34-none-any.whl
.
File metadata
- Download URL: idlite-0.0.9-py34-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3.4
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a34a0ca83b86d4028c30b596c4eff178931991a71931f2ab50f566df3bc44c2 |
|
MD5 | 5a98ccab861ff471eb73fa96fabb3ad7 |
|
BLAKE2b-256 | 6f6997febe1eca77aac9b4155a65dcaa93b43a33b0cccfe464337bc9e876b98d |