Skip to content

ChrisVent/Object.h

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Object.h

"Objects" in C Language using type "var" like Javascript (not confused with Classes).

#include "Object.h"

int main(int args, const char* argv[]){

    var myObj = ObjectCreate("myObj"); /* => Setting the key 'myObj' */

    myObj->setString(myObj, "Hello World"); /* => like, myObj: "Hello World" */
    const char* myval = myObj->getString(myObj); /* => "Hello World" */

    return 0;
}

You can change the type of object value:

myObj   ->setString(myObj, "Foo") /* type: String */
        ->setNumber(myObj, 3445); /* now, type: Number */

Supported Types:

  • Number
  • String
  • Boolean
  • Object (childs)
  • ArrayOfNumber
  • ArrayOfString
  • ArrayOfBoolean
  • Undefined (default)

You can set childs to your object:

var myParent = ObjectCreate("Parent");
var myChild = ObjectCreate("Child");

myParent->setChild(myParent, myChild); /* args: 'to' myParent, 'from' myChild */

myChild->setNumber(myChild, 75);

var child = myParent->getChild(myParent);
int should_be_75 =  child->getNumber(child); /* => 75 */

You can find() in childs Linked List;

var myParent = ...

var myChild1 = ...
var myChild2 = ...
var myChild3 = ObjectCreate("child3");

myParent->setChild(myParent, myChild1);
myParent->appendChild(myParent, myChild2); /* or using `setNext()` in myChild1 */
myParent->appendChild(myParent, myChild3); /* or using `setNext()` in myChild2 */

var found = myParent->find(myParent, "child3"); /* find using the key setted in ObjectCreate() */

Using test functions:

if(!isUndefined(myParent)){
    /* ... */
    if(hasChild(myParent, "child3")){
        /* ... */
        if(isString(myChild3)){
            /* ... */
        }
    }
}

License

MIT

About

"Objects" in C Language using type "var" like Javascript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 100.0%