-
Notifications
You must be signed in to change notification settings - Fork 14
Datatypes
As of 8/21/2013, Cuttlefish supports the following datatypes:
integer
is exactly what it sounds like.
enum
is great! You know the fixed set of options for a setting, so
use this one.
The ip
datatype exists currently as an IP/Port combo, and it's
currently under discussion as to whether or not we want ip and ip/port
to be different datatypes.
string
is the default datatype. Everything in a .conf
file is a
string anyway, so we're guaranteed a successful conversion.
duration
s are fixed intervals of time, the largest unit of which
will be a one week. Anything larger will have to be expressed in terms
of weeks, since larger units (month, year) are of variable duration.
duration
s manifest in .conf
files as strings like this: 1w2d
.
The following units are supported:
- w - week
- d - day
- h - hour
- m - minute
- s - second
- ms - millisecond
You can use any combination of these. I'm not sure why you'd want to
specify 1w13ms
, but you can.
Did I mention you can use floats here? "0.5d"? no probalo.
Keep your eyes on this file cuttlefish_duration.erl for developments on this.
duration
will convert automatically to milliseconds in your app.config. If you want it to be seconds instead of milliseconds, just use the datatype duration_secs
. It will round up to the nearest second, so 1ms
= 999ms
= 1s
. Confused? You won't be, after this week's episode of...Soap.
In your app.config, these will end up as bytes in integers, so 1kb = 1024.
bytesize
will work pretty much like duration
but with three differences.
- The units will are
mb
,kb
, andgb
- If no unit is specified, it's just bytes
- You will only be able to use ONE unit. e.g. no
4gb3kb
<- that makes no sense!
file / dir only exists as an idea at this point. It will allow for
included validators like valid path
and exists
. Some files may
need to exist, some may not. some may need to be writable. I'm not
sure this makes the first release.