Skip to content
kurapica edited this page Apr 18, 2018 · 30 revisions

Prototype Lua Object-Oriented Program System

Prototype.lua

Prototype

Attribute

  • [[System.__Abstract__|system_abstract]] used to set a class, a method or a feature(like event, property) as abstract
  • [[System.__AnonymousClass__|system_anonymousclass]] used to make an interface so it should have anonymous class, so the interface can be used to generate objects
  • [[System.__AutoIndex__|system_autoindex]] used to generate an auto-index enumeration
  • [[System.__Arguments__|system_arguments]] used to build the overload and validation system for methods or functions
  • [[System.__Base__|system_base]] used to set a base struct type to the target struct type
  • [[System.__Default__|system_default]] used to set the default value of an enum or a custom struct type
  • [[System.__Delegate__|system_delegate]] used to wrap the target function within the given function like pcall
  • [[System.__EventChangeHandler__|system_eventchangehandler]] used to set the event change handler for an event
  • [[System.__Final__|system_final]] used to set a class, an interface, a method or a feature as final
  • [[System.__Flags__|system_flags]] used to set the enum as a flags enumeration
  • [[System.__Get__|system_get]] used to modify the property's get behaviors, like deep clone
  • [[System.__Indexer__|system_indexer]] used to set a property as indexer property that would be used as obj.Items[index] = value
  • [[System.__NoNilValue__|system_nonilvalue]] used to mark a class's objects, so access non-existent value from them is denied
  • [[System.__NoRawSet__|system_norawset]] used to mark a class's objects, so set value to their non-existent fields is denied
  • [[System.__SuperObject__|system_superobject]] used to mark a class or interface, so whether they use super object style like super[self]:xxx()
  • [[System.__ObjFuncAttr__|system_objfuncattr]] used to mark a class's objects, so functions that be assigned on them will be modified by the attribute system
  • [[System.__ObjectSource__|system_objectsource]] with it the class ojbect will save the source where it's created
  • [[System.__Require__|system_require]] used to mark an interface's require class
  • [[System.__Sealed__|system_sealed]] used to seal enum, struct, interface and class, so they can't be re-defined
  • [[System.__Set__|system_set]] used to modify the property's set behaviors
  • [[System.__SingleVer__|system_singlever]] used to mark a class as single version class, so old object will receive re-defined class's new features
  • [[System.__Static__|system_static]] used to mark the method or feature as static, so it only be used by the type itself
  • [[System.__Super__|system_super]] used to set the target class's super class
  • [[System.__Template__|system_template]] make the target struct, interface or class as a template

Enum

Struct

Interface

Class

System/Text.lua

Class

System/IO.lua

Class

PLoop/System/Serialization.lua

Attribute

  • [[System.Serialization.__Serializable__|system_serialization_serializable]] indicates a class or custom struct type is serializable
  • [[System.Serialization.__NonSerialized__|system_serialization_nonserialized]] indicates a member in struct or a property in class can't be serialized

Struct

Interface

Class

System/Date.lua

Struct

Class

System/Logger.lua

Enum

Class

System/Collections.lua

Interface

System/Recycle.lua

Class

System/Threading.lua

Attribute

  • [[System.Threading.__Async__|system_threading_async]] used to wrap a method or function to run it within coroutines fetched from thread pool
  • [[System.Threading.__Iterator__|system_threading_iterator]] used to wrap a method or function as iterator which is process within coroutines fetched from thread pool

Interface

Class

System/Collections/List.lua

Interface

Class

System/Collections/Dictionary.lua

Interface

Class

System/Collections/IIndexedListSorter.lua

System/Collections/Array.lua

Class

System/Serialization/LuaFormatProvider.lua

Class

System/Serialization/StringFormatProvider.lua

Class

System/Text/UTF8Encoding.lua

Class

System/Text/UTF16Encoding.lua

Class

Clone this wiki locally