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.7.tar.gz
(7.1 kB
view details)
Built Distribution
idlite-0.0.7-py34-none-any.whl
(10.2 kB
view details)
File details
Details for the file idlite-0.0.7.tar.gz
.
File metadata
- Download URL: idlite-0.0.7.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2479ea54c56a57451c20884a3560e6112be1566888c96d5ecdc73354a543aed8 |
|
MD5 | d86ce48fb3faf21127701e12e69632c6 |
|
BLAKE2b-256 | 5080d266cbac858999630f6ccb78a18d29b0dd54b99192e1aed8fa71c8317942 |
File details
Details for the file idlite-0.0.7-py34-none-any.whl
.
File metadata
- Download URL: idlite-0.0.7-py34-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3.4
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ffd228514f928d497067633b7e3128e55a3d6c6d3628e687a5093c53e2db6a |
|
MD5 | 52376ada20fd8eaf3dbd248824dca0a9 |
|
BLAKE2b-256 | e8bccd9c626b8f6fca38a16aa42ab1c85fd5af479d7bb6f4b5d1e2876f07e72d |