time

package
v0.0.0-...-8cdf743 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2024 License: MIT Imports: 7 Imported by: 1

Documentation

Overview

Package time provides time module for measuring and displaying time for Charlang script language. It wraps Go's time package functionalities. Note that: Charlang's int values are converted to Go's time.Duration values.

Index

Constants

This section is empty.

Variables

View Source
var Module = map[string]charlang.Object{

	"January":   charlang.Int(time.January),
	"February":  charlang.Int(time.February),
	"March":     charlang.Int(time.March),
	"April":     charlang.Int(time.April),
	"May":       charlang.Int(time.May),
	"June":      charlang.Int(time.June),
	"July":      charlang.Int(time.July),
	"August":    charlang.Int(time.August),
	"September": charlang.Int(time.September),
	"October":   charlang.Int(time.October),
	"November":  charlang.Int(time.November),
	"December":  charlang.Int(time.December),

	"Sunday":    charlang.Int(time.Sunday),
	"Monday":    charlang.Int(time.Monday),
	"Tuesday":   charlang.Int(time.Tuesday),
	"Wednesday": charlang.Int(time.Wednesday),
	"Thursday":  charlang.Int(time.Thursday),
	"Friday":    charlang.Int(time.Friday),
	"Saturday":  charlang.Int(time.Saturday),

	"ANSIC":       charlang.String(time.ANSIC),
	"UnixDate":    charlang.String(time.UnixDate),
	"RubyDate":    charlang.String(time.RubyDate),
	"RFC822":      charlang.String(time.RFC822),
	"RFC822Z":     charlang.String(time.RFC822Z),
	"RFC850":      charlang.String(time.RFC850),
	"RFC1123":     charlang.String(time.RFC1123),
	"RFC1123Z":    charlang.String(time.RFC1123Z),
	"RFC3339":     charlang.String(time.RFC3339),
	"RFC3339Nano": charlang.String(time.RFC3339Nano),
	"Kitchen":     charlang.String(time.Kitchen),
	"Stamp":       charlang.String(time.Stamp),
	"StampMilli":  charlang.String(time.StampMilli),
	"StampMicro":  charlang.String(time.StampMicro),
	"StampNano":   charlang.String(time.StampNano),

	"Nanosecond":  charlang.Int(time.Nanosecond),
	"Microsecond": charlang.Int(time.Microsecond),
	"Millisecond": charlang.Int(time.Millisecond),
	"Second":      charlang.Int(time.Second),
	"Minute":      charlang.Int(time.Minute),
	"Hour":        charlang.Int(time.Hour),

	"UTC": &charlang.Function{
		Name:    "UTC",
		Value:   stdlib.FuncPRO(utcFunc),
		ValueEx: stdlib.FuncPROEx(utcFunc),
	},

	"Local": &charlang.Function{
		Name:    "Local",
		Value:   stdlib.FuncPRO(localFunc),
		ValueEx: stdlib.FuncPROEx(localFunc),
	},

	"MonthString": &charlang.Function{
		Name:    "MonthString",
		Value:   stdlib.FuncPiRO(monthStringFunc),
		ValueEx: stdlib.FuncPiROEx(monthStringFunc),
	},

	"WeekdayString": &charlang.Function{
		Name:    "WeekdayString",
		Value:   stdlib.FuncPiRO(weekdayStringFunc),
		ValueEx: stdlib.FuncPiROEx(weekdayStringFunc),
	},

	"DurationString": &charlang.Function{
		Name:    "DurationString",
		Value:   stdlib.FuncPi64RO(durationStringFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationStringFunc),
	},

	"DurationNanoseconds": &charlang.Function{
		Name:    "DurationNanoseconds",
		Value:   stdlib.FuncPi64RO(durationNanosecondsFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationNanosecondsFunc),
	},

	"DurationMicroseconds": &charlang.Function{
		Name:    "DurationMicroseconds",
		Value:   stdlib.FuncPi64RO(durationMicrosecondsFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationMicrosecondsFunc),
	},

	"DurationMilliseconds": &charlang.Function{
		Name:    "DurationMilliseconds",
		Value:   stdlib.FuncPi64RO(durationMillisecondsFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationMillisecondsFunc),
	},

	"DurationSeconds": &charlang.Function{
		Name:    "DurationSeconds",
		Value:   stdlib.FuncPi64RO(durationSecondsFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationSecondsFunc),
	},

	"DurationMinutes": &charlang.Function{
		Name:    "DurationMinutes",
		Value:   stdlib.FuncPi64RO(durationMinutesFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationMinutesFunc),
	},

	"DurationHours": &charlang.Function{
		Name:    "DurationHours",
		Value:   stdlib.FuncPi64RO(durationHoursFunc),
		ValueEx: stdlib.FuncPi64ROEx(durationHoursFunc),
	},

	"Sleep": &charlang.Function{
		Name: "Sleep",
		Value: stdlib.FuncPi64R(func(duration int64) {
			time.Sleep(time.Duration(duration))
		}),
		ValueEx: sleepFunc,
	},

	"ParseDuration": &charlang.Function{
		Name:    "ParseDuration",
		Value:   stdlib.FuncPsROe(parseDurationFunc),
		ValueEx: stdlib.FuncPsROeEx(parseDurationFunc),
	},

	"DurationRound": &charlang.Function{
		Name:    "DurationRound",
		Value:   stdlib.FuncPi64i64RO(durationRoundFunc),
		ValueEx: stdlib.FuncPi64i64ROEx(durationRoundFunc),
	},

	"DurationTruncate": &charlang.Function{
		Name:    "DurationTruncate",
		Value:   stdlib.FuncPi64i64RO(durationTruncateFunc),
		ValueEx: stdlib.FuncPi64i64ROEx(durationTruncateFunc),
	},

	"FixedZone": &charlang.Function{
		Name:    "FixedZone",
		Value:   stdlib.FuncPsiRO(fixedZoneFunc),
		ValueEx: stdlib.FuncPsiROEx(fixedZoneFunc),
	},

	"LoadLocation": &charlang.Function{
		Name:    "LoadLocation",
		Value:   stdlib.FuncPsROe(loadLocationFunc),
		ValueEx: stdlib.FuncPsROeEx(loadLocationFunc),
	},

	"IsLocation": &charlang.Function{
		Name:    "IsLocation",
		Value:   stdlib.FuncPORO(isLocationFunc),
		ValueEx: stdlib.FuncPOROEx(isLocationFunc),
	},

	"Time": &charlang.Function{
		Name:    "Time",
		Value:   stdlib.FuncPRO(zerotimeFunc),
		ValueEx: stdlib.FuncPROEx(zerotimeFunc),
	},

	"Since": &charlang.Function{
		Name:    "Since",
		Value:   funcPTRO(sinceFunc),
		ValueEx: funcPTROEx(sinceFunc),
	},

	"Until": &charlang.Function{
		Name:    "Until",
		Value:   funcPTRO(untilFunc),
		ValueEx: funcPTROEx(untilFunc),
	},

	"Date": &charlang.Function{
		Name:    "Date",
		Value:   dateFunc,
		ValueEx: dateFuncEx,
	},

	"Now": &charlang.Function{
		Name:    "Now",
		Value:   stdlib.FuncPRO(nowFunc),
		ValueEx: stdlib.FuncPROEx(nowFunc),
	},

	"Parse": &charlang.Function{
		Name:    "Parse",
		Value:   parseFunc,
		ValueEx: parseFuncEx,
	},

	"Unix": &charlang.Function{
		Name:    "Unix",
		Value:   unixFunc,
		ValueEx: unixFuncEx,
	},

	"Add": &charlang.Function{
		Name:  "Add",
		Value: funcPTi64RO(timeAdd),
	},

	"Sub": &charlang.Function{
		Name:  "Sub",
		Value: funcPTTRO(timeSub),
	},

	"AddDate": &charlang.Function{
		Name:  "AddDate",
		Value: funcPTiiiRO(timeAddDate),
	},

	"After": &charlang.Function{
		Name:  "After",
		Value: funcPTTRO(timeAfter),
	},

	"Before": &charlang.Function{
		Name:  "Before",
		Value: funcPTTRO(timeBefore),
	},

	"Format": &charlang.Function{
		Name:  "Format",
		Value: funcPTsRO(timeFormat),
	},

	"AppendFormat": &charlang.Function{
		Name:  "AppendFormat",
		Value: funcPTb2sRO(timeAppendFormat),
	},

	"In": &charlang.Function{
		Name:  "In",
		Value: funcPTLRO(timeIn),
	},

	"Round": &charlang.Function{
		Name:  "Round",
		Value: funcPTi64RO(timeRound),
	},

	"Truncate": &charlang.Function{
		Name:  "Truncate",
		Value: funcPTi64RO(timeTruncate),
	},

	"IsTime": &charlang.Function{
		Name:    "IsTime",
		Value:   stdlib.FuncPORO(isTimeFunc),
		ValueEx: stdlib.FuncPOROEx(isTimeFunc),
	},
}

Module represents time module.

Functions

This section is empty.

Types

type Location

type Location struct {
	charlang.ObjectImpl
	Value *time.Location
}

Location represents location values and implements charlang.Object interface.

func ToLocation

func ToLocation(o charlang.Object) (ret *Location, ok bool)

ToLocation will try to convert given charlang.Object to *Location value.

func (*Location) Equal

func (o *Location) Equal(right charlang.Object) bool

Equal implements charlang.Object interface.

func (*Location) IsFalsy

func (o *Location) IsFalsy() bool

IsFalsy implements charlang.Object interface.

func (*Location) String

func (o *Location) String() string

String implements charlang.Object interface.

func (*Location) TypeName

func (*Location) TypeName() string

TypeName implements charlang.Object interface.

type Time

type Time struct {
	Value time.Time
}

Time represents time values and implements charlang.Object interface.

func ToTime

func ToTime(o charlang.Object) (ret *Time, ok bool)

ToTime will try to convert given given charlang.Object to *Time value.

func (*Time) BinaryOp

func (o *Time) BinaryOp(tok token.Token,
	right charlang.Object) (charlang.Object, error)

BinaryOp implements charlang.Object interface.

func (*Time) Call

func (*Time) Call(args ...charlang.Object) (charlang.Object, error)

Call implements charlang.Object interface.

func (*Time) CallName

func (o *Time) CallName(name string, c charlang.Call) (charlang.Object, error)

func (*Time) CanCall

func (*Time) CanCall() bool

CanCall implements charlang.Object interface.

func (*Time) CanIterate

func (*Time) CanIterate() bool

CanIterate implements charlang.Object interface.

func (*Time) Equal

func (o *Time) Equal(right charlang.Object) bool

Equal implements charlang.Object interface.

func (*Time) IndexGet

func (o *Time) IndexGet(index charlang.Object) (charlang.Object, error)

IndexGet implements charlang.Object interface.

func (*Time) IndexSet

func (*Time) IndexSet(_, _ charlang.Object) error

IndexSet implements charlang.Object interface.

func (*Time) IsFalsy

func (o *Time) IsFalsy() bool

IsFalsy implements charlang.Object interface.

func (*Time) Iterate

func (*Time) Iterate() charlang.Iterator

Iterate implements charlang.Object interface.

func (*Time) MarshalBinary

func (o *Time) MarshalBinary() ([]byte, error)

MarshalBinary implements encoding.BinaryMarshaler interface.

func (*Time) MarshalJSON

func (o *Time) MarshalJSON() ([]byte, error)

MarshalJSON implements json.JSONMarshaler interface.

func (*Time) String

func (o *Time) String() string

String implements charlang.Object interface.

func (*Time) TypeName

func (*Time) TypeName() string

TypeName implements charlang.Object interface.

func (*Time) UnmarshalBinary

func (o *Time) UnmarshalBinary(data []byte) error

UnmarshalBinary implements encoding.BinaryUnmarshaler interface.

func (*Time) UnmarshalJSON

func (o *Time) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.JSONUnmarshaler interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL