mirror of
https://onedev.site.tesses.net/crosslang/crosslang-website
synced 2026-02-08 17:15:46 +00:00
Add types
This commit is contained in:
100
content/runtime/getargument.md
Normal file
100
content/runtime/getargument.md
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
+++
|
||||||
|
title = 'Get Argument Helpers'
|
||||||
|
date = 2025-10-22T20:31:08-05:00
|
||||||
|
+++
|
||||||
|
|
||||||
|
## GetArgument
|
||||||
|
```c++
|
||||||
|
/*
|
||||||
|
Gets a non heap object from arguments
|
||||||
|
Returns true if argument is of type T and index < args.size()
|
||||||
|
obj is set to the args[index] if it returns true
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
bool GetArgument(std::vector<TObject>& args, size_t index, T& obj);
|
||||||
|
```
|
||||||
|
|
||||||
|
```c++
|
||||||
|
//Heres it in code
|
||||||
|
static TObject My_Custom(GCList& ls, std::vector<TObject> args)
|
||||||
|
{
|
||||||
|
int64_t n;
|
||||||
|
if(GetArgument(args,0,n))
|
||||||
|
{
|
||||||
|
return n + 5;
|
||||||
|
}
|
||||||
|
return (int64_t)5;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## GetArgumentHeap
|
||||||
|
|
||||||
|
```c++
|
||||||
|
/*
|
||||||
|
Gets a heap object from arguments
|
||||||
|
Returns true if argument is of type T and index < args.size()
|
||||||
|
obj is set to the args[index] if it returns true
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
bool GetArgumentHeap(std::vector<TObject>& args, size_t index, T& obj);
|
||||||
|
```
|
||||||
|
|
||||||
|
```c++
|
||||||
|
//Heres it in code
|
||||||
|
static TObject My_Custom(GCList& ls, std::vector<TObject> args)
|
||||||
|
{
|
||||||
|
TList* list;
|
||||||
|
if(GetArgumentHeap(args,0,list))
|
||||||
|
{
|
||||||
|
list->Add((std::string)"Hello, world");
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
```c++
|
||||||
|
|
||||||
|
/*
|
||||||
|
Gets a non heap object from src
|
||||||
|
Returns true if argument is of type T
|
||||||
|
obj is set to src if it returns true
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
bool GetObject(TObject& src, T& obj);
|
||||||
|
```
|
||||||
|
|
||||||
|
```c++
|
||||||
|
//Heres it in code
|
||||||
|
static TObject My_Custom(GCList& ls, std::vector<TObject> args)
|
||||||
|
{
|
||||||
|
int64_t n;
|
||||||
|
TDictionary* dict;
|
||||||
|
if(GetArgumentHeap(args,0,dict))
|
||||||
|
{
|
||||||
|
auto item = dict->GetValue("MyItem");
|
||||||
|
if(GetObject(item, n))
|
||||||
|
return n + 5;
|
||||||
|
}
|
||||||
|
return (int64_t)5;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## GetArgumentHeap
|
||||||
|
|
||||||
|
```c++
|
||||||
|
/*
|
||||||
|
Gets a heap object from src
|
||||||
|
Returns true if argument is of type T
|
||||||
|
obj is set to src if it returns true
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
bool GetObjectHeap(TObject& src, T& obj);
|
||||||
|
```
|
||||||
|
|
||||||
|
```c++
|
||||||
|
//Heres it in code
|
||||||
|
static void My_Custom(TObject something)
|
||||||
|
{
|
||||||
|
TList* ls;
|
||||||
|
if(GetObjectHeap(something, ls))
|
||||||
|
{
|
||||||
|
ls->Add((int64_t)42);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
21
content/runtime/types.md
Normal file
21
content/runtime/types.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
+++
|
||||||
|
title = 'Types'
|
||||||
|
date = 2025-10-22T20:43:05-05:00
|
||||||
|
+++
|
||||||
|
|
||||||
|
| Name | IsHeap | Description | TypeOf |
|
||||||
|
| ===== | ======= | ============ | ====== |
|
||||||
|
| int64_t | false | A integer | "Long" |
|
||||||
|
| double | false | A double precision float | "Double" |
|
||||||
|
| char | false | A character | "Char" |
|
||||||
|
| bool | false | a boolean | "Boolean" |
|
||||||
|
| std::string | false | A string | "String" |
|
||||||
|
| std::regex | false | A regex | "Regex" |
|
||||||
|
| std::nullptr_t | false | Null | "Null" |
|
||||||
|
| Undefined | false | Undefined | "Undefined" |
|
||||||
|
| MethodInvoker | false | MethodInvoker's type | "MethodInvoker" |
|
||||||
|
| THeapObjectHolder | false | Holds onto heap object | "HeapObject" |
|
||||||
|
| TVMVersion | false | A CrossLang Version | "Version" |
|
||||||
|
| TDateTime | false | A date time | "DateTime" |
|
||||||
|
| std::shared_ptr<Tesses::Framework::Streams::Stream> | false | A Stream | "Stream" |
|
||||||
|
| std::shared_ptr<Tesses::Framework::Filesystem::VFS> | false | A Filesystem | "Filesystem" |
|
||||||
Reference in New Issue
Block a user