C3 AI Documentation Home

Keywords of the .c3typ type file

This page lists the keywords of the C3 "type" files (.c3typ). See also the BNF syntax for types.

KeywordDescriptionDoc
abstracttype or method must be implemented in a sub-typeTypeMeta#isAbstract
anyvalue can be any of the formally defined value typesAnyType
asused to create a remix with a different nameTypeMeta#remixAliases
bigintvalue is an arbitrary-length integerBigIntType
binaryvalue is binary data (bytes)BinaryType
booleanvalue is true or falseBooleanType
bytevalue is a signed 8-bit integerByteType
cachedreturn value of method will be computed only the first time calledMethodType#cached
calcfield's value is produced by evaluating an expressionFieldType#isCalculated
collectionvalue is any type of collectionCollectionType#isAnyCollection
constfield's value is fixed and specified at definition typeFieldType#isConstant
Dateused to create a datetime value in an expressionExpr
datevalue is a date-only (subset of datetime without time)DateTimeType#noTime
datetimevalue is a date/time valueDateTimeType
decimalvalue is an extended-precision decimal numberDecimalType
defaultfield or parameter has a default valueFieldType#hasDefault
doublevalue is an IEEE double value (8 byte)DoubleType
ducktype is automatically mixed in to types which define the same set of mixinsTypeMeta#declaredDuck
entitytype is stored in a database and automatically has persistence-related methodsPersistable
enumtype is an enumeration of values (all fields are constants)Enum
event streamnotification mechanism or communication channel for eventsEventStreamType
extendablechild types of an entity are stored in the same tablePersistable
extendsused to declare a type as being of an "extendable" parent entityPersistable
finalthe field or method may not be further modified by sub-typesFieldType#final
floatvalue is an IEEE float value (4 byte)FloatType
fromused to specify which parent type a method is overridingMethodType#inheritFrom
functionused to declare a type methodMethodType
inused to determine if a value is a member of a collection in an expressionExpr
inlineminimize dispatching overhead, especially avoid making argument and return valuesMethodType#inline
instanceofused to determine if a type is a sub-type of another in an expressionExpr
intvalue is a signed 64-bit integerIntType
int16value is a signed 16-bit integerInt16Type
int32value is a signed 32-bit integerInt32Type
isAused to determine if a type is a sub-type of another in an expressionExpr
javamethod implementation is claimed in the Java languageJava
jsmethod implementation is claimed in the JavaScript languageJs
jsonvalue is a JavaScript Object Notation (JSON) structureJsonType
lambdavalue is a callable objectLambdaType
mapvalue is a collection maping keys to valuesMapType
member functionused to declare a type member methodMethodType
mixesused to indicate that a type includes the behavior of a parent typeTypeMeta#mixins
mixingused to indicate that the type will be refined to that of the sub-typeReferenceType#mixing
nativevalue is not formally defined and will differ between languagesNativeType
no tzdatetime value is logical, not anchored to a time zoneDateTimeType#noTimeZone
not extendabletype does not allow sub-types to use "extends" or "extendable"TypeMeta#declaredNotExtendable
not mixabletype does not allow sub-typesTypeMeta#declaredNotMixable
not persistablefield is not persisted in the databaseFieldType#notPersistable
not remixabletype does not allow remixesTypeMeta#declaredNotRemixable
numbervalue is any of the defined numeric types (integer or real)NumberType
optionalmethod may be implemented in a sub-typeMethodType#optional
periodthe recalculation period for fields that are "periodic calc"FieldType#calcPeriod
periodicused with "calc" to defined a periodically recalculated fieldFieldType#calcPeriod
privatetype, field or method is not accessible outside the declaring packageMethodType#private
propertytype method exposed with property access (not as function call)MethodType#property
push streamvalue is a notification mechanism for a stream of dataPushStreamType
pymethod implementation is claimed in the Python languagePy
remixtype is a remix of another typeTypeMeta#declaredRemix
schedulethe recalculation schedule for fields that are "scheduled calc"FieldType#calcSchedule
scheduledused with "calc" to defined a scheduled recalculated fieldFieldType#calcSchedule
schema namespecify the database table/column column name for persistanceFieldType#schemaName
schema suffixa suffix for the database column column name into which a field will be persistedFieldType#schemaSuffix
serializeddefine the format of a string or json field in terms of a typeStringSerializable
setvalue is a unique collection of elementsSetType
statefulindicates that a method is not a pure function of its argumentsFunctionType#stateful
storedused with "calc" to indicate that a field's calculated value should be persistedFieldType#isStoredCalculated
streamvalue is a sequence of elements, possibly exceeding what will fit in memoryStreamType
stringvalue is a string of Unicode characters (UTF-8 encoding between processes)StringType
translate byspecifies that a field's value is translatedFieldType#translatedBy
tsmethod implementation is claimed in the TypeScript languageTs
tsxmethod implementation is claimed in the TypeScript language with JSX extensionsTsx
tuplevalue is a tuple of any shapeTupleType#isAnyTuple
typeused to declare a new typeTypeMeta
type keythe key used to identify a type's position in a hieararchy of extendable typesTypeMeta#declaredTypeKey
uniona type that declares values must be one of a set of other typesTypeMeta#isUnion
utcdatetime value is always in Coordinated Universal Time (UTC)DateTimeType#forceUtc
voidvalue is not produced/expected (will always be null)VoidType
with microsdatetime has microsecond resolution (10⁻⁶)DateTimeType#withMicros
with millisdatetime has millisecond resolution (10⁻³)DateTimeType#withMillis
with nanosdatetime has nanosecond resolution (10⁻⁹)DateTimeType#withNanos
Was this page helpful?