1 /**
2 Data transformation (marshalling) and encoding helpers.
3 
4 Copyright:
5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur.  
6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md)  
7 Copyright (c) 2017-2018 Godot-D contributors  
8 
9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License)
10 
11 
12 */
13 module godot.marshalls;
14 import std.meta : AliasSeq, staticIndexOf;
15 import std.traits : Unqual;
16 import godot.d.meta;
17 import godot.core;
18 import godot.c;
19 import godot.d.bind;
20 import godot.d.reference;
21 import godot.object;
22 import godot.reference;
23 /**
24 Data transformation (marshalling) and encoding helpers.
25 
26 Provides data transformation and encoding utility functions.
27 */
28 @GodotBaseClass struct MarshallsSingleton
29 {
30 	enum string _GODOT_internal_name = "_Marshalls";
31 public:
32 @nogc nothrow:
33 	union { godot_object _godot_object; Reference _GODOT_base; }
34 	alias _GODOT_base this;
35 	alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses);
36 	package(godot) __gshared bool _classBindingInitialized = false;
37 	package(godot) static struct _classBinding
38 	{
39 		__gshared:
40 		godot_object _singleton;
41 		immutable char* _singletonName = "Marshalls";
42 		@GodotName("variant_to_base64") GodotMethod!(String, Variant) variantToBase64;
43 		@GodotName("base64_to_variant") GodotMethod!(Variant, String) base64ToVariant;
44 		@GodotName("raw_to_base64") GodotMethod!(String, PoolByteArray) rawToBase64;
45 		@GodotName("base64_to_raw") GodotMethod!(PoolByteArray, String) base64ToRaw;
46 		@GodotName("utf8_to_base64") GodotMethod!(String, String) utf8ToBase64;
47 		@GodotName("base64_to_utf8") GodotMethod!(String, String) base64ToUtf8;
48 	}
49 	bool opEquals(in MarshallsSingleton other) const { return _godot_object.ptr is other._godot_object.ptr; }
50 	MarshallsSingleton opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; }
51 	bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; }
52 	mixin baseCasts;
53 	static MarshallsSingleton _new()
54 	{
55 		static godot_class_constructor constructor;
56 		if(constructor is null) constructor = _godot_api.godot_get_class_constructor("_Marshalls");
57 		if(constructor is null) return typeof(this).init;
58 		return cast(MarshallsSingleton)(constructor());
59 	}
60 	@disable new(size_t s);
61 	/**
62 	Return base64 encoded String of a given $(D Variant).
63 	*/
64 	String variantToBase64(VariantArg0)(in VariantArg0 variant)
65 	{
66 		checkClassBinding!(typeof(this))();
67 		return ptrcall!(String)(_classBinding.variantToBase64, _godot_object, variant);
68 	}
69 	/**
70 	Return $(D Variant) of a given base64 encoded String.
71 	*/
72 	Variant base64ToVariant(StringArg0)(in StringArg0 base64_str)
73 	{
74 		checkClassBinding!(typeof(this))();
75 		return ptrcall!(Variant)(_classBinding.base64ToVariant, _godot_object, base64_str);
76 	}
77 	/**
78 	Return base64 encoded String of a given $(D PoolByteArray).
79 	*/
80 	String rawToBase64(in PoolByteArray array)
81 	{
82 		checkClassBinding!(typeof(this))();
83 		return ptrcall!(String)(_classBinding.rawToBase64, _godot_object, array);
84 	}
85 	/**
86 	Return $(D PoolByteArray) of a given base64 encoded String.
87 	*/
88 	PoolByteArray base64ToRaw(StringArg0)(in StringArg0 base64_str)
89 	{
90 		checkClassBinding!(typeof(this))();
91 		return ptrcall!(PoolByteArray)(_classBinding.base64ToRaw, _godot_object, base64_str);
92 	}
93 	/**
94 	Return base64 encoded String of a given utf8 String.
95 	*/
96 	String utf8ToBase64(StringArg0)(in StringArg0 utf8_str)
97 	{
98 		checkClassBinding!(typeof(this))();
99 		return ptrcall!(String)(_classBinding.utf8ToBase64, _godot_object, utf8_str);
100 	}
101 	/**
102 	Return utf8 String of a given base64 encoded String.
103 	*/
104 	String base64ToUtf8(StringArg0)(in StringArg0 base64_str)
105 	{
106 		checkClassBinding!(typeof(this))();
107 		return ptrcall!(String)(_classBinding.base64ToUtf8, _godot_object, base64_str);
108 	}
109 }
110 /// Returns: the MarshallsSingleton
111 @property @nogc nothrow pragma(inline, true)
112 MarshallsSingleton Marshalls()
113 {
114 	checkClassBinding!MarshallsSingleton();
115 	return MarshallsSingleton(MarshallsSingleton._classBinding._singleton);
116 }