本文整理汇总了Golang中github.com/gocircuit/escher/be.Eye类的典型用法代码示例。如果您正苦于以下问题:Golang Eye类的具体用法?Golang Eye怎么用?Golang Eye使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Eye类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: CognizeString
func (IntString) CognizeString(eye *be.Eye, v interface{}) {
i, err := strconv.Atoi(v.(string))
if err != nil {
panic(err)
}
eye.Show("Int", i)
}
开发者ID:mrG7,项目名称:escher,代码行数:7,代码来源:arithmetic.go
示例2: CognizeCircuit
func (IgnoreValves) CognizeCircuit(eye *be.Eye, v interface{}) {
u := v.(Circuit).Copy()
n := u.Unify("ignoreValves")
u.Gate[n] = NewVerbAddress("*", "Ignore")
u.Reflow(Super, n)
eye.Show(DefaultValve, u)
}
开发者ID:mrG7,项目名称:escher,代码行数:7,代码来源:ignore.go
示例3: depthFirst
func depthFirst(eye *be.Eye, walk []Name, v interface{}) {
x, ok := v.(Circuit)
if !ok {
return
}
for _, n := range x.SortedNames() {
switch n.(type) { // skip non alpha-numeric names
case int, string:
v := x.At(n)
depthFirst(eye, append(walk, n), v)
}
}
var nm Name = "" // The root circuit is shown with the empty name
if len(walk) > 0 {
nm = walk[len(walk)-1]
}
frame := New().
Grow("Address", Circuit(NewAddress(walk...))).
Grow("Name", nm).
Grow("View", x)
eye.Show("Frame", frame)
if len(walk) == 0 {
eye.Show("End", v)
}
}
开发者ID:mrG7,项目名称:escher,代码行数:28,代码来源:depthfirst.go
示例4: CognizeName
func (LookPath) CognizeName(eye *be.Eye, value interface{}) {
p, err := exec.LookPath(value.(string))
if err != nil {
log.Fatalf("no file path to %s", value.(string))
}
eye.Show(DefaultValve, p)
}
开发者ID:mrG7,项目名称:escher,代码行数:7,代码来源:os.go
示例5: CognizeView
func (Join) CognizeView(eye *be.Eye, v interface{}) {
u := v.(Circuit)
var s []string
for _, n := range u.SortedNames() {
s = append(s, u.Gate[n].(string))
}
eye.Show(DefaultValve, path.Join(s...))
}
开发者ID:mrG7,项目名称:escher,代码行数:8,代码来源:os.go
示例6: OverCognize
func (g *Lens) OverCognize(eye *be.Eye, valve Name, value interface{}) {
g.remember(valve, value)
for _, v := range g.valve {
if v != valve {
eye.Show(v, value)
}
}
}
开发者ID:mrG7,项目名称:escher,代码行数:8,代码来源:lens.go
示例7: CognizeIn
func (Merge) CognizeIn(eye *be.Eye, v interface{}) {
var w bytes.Buffer
x := v.(Circuit)
for _, name := range x.SortedLetters() {
w.WriteString(flatten(x.StringAt(name)))
}
eye.Show("Out", w.String())
}
开发者ID:mrG7,项目名称:escher,代码行数:8,代码来源:merge.go
示例8: Cognize
func (Gates) Cognize(eye *be.Eye, value interface{}) {
u := value.(Circuit)
for name, _ := range u.SortedNames() {
frame := New()
frame.Grow("Name", name).Grow("Value", u.At(name))
eye.Show("Frame", frame)
}
eye.Show("End", value)
}
开发者ID:mrG7,项目名称:escher,代码行数:9,代码来源:gates.go
示例9: CognizeCommand
func (Process) CognizeCommand(eye *be.Eye, dvalue interface{}) {
x := New()
if exit := spawnProcess(eye, cognizeCommand(dvalue)); exit != nil {
x.Grow("Exit", 1)
eye.Show("Exit", x)
} else {
x.Grow("Exit", 0)
eye.Show("Exit", x)
}
}
开发者ID:mrG7,项目名称:escher,代码行数:10,代码来源:proc.go
示例10: CognizeText
func (Parse) CognizeText(eye *be.Eye, v interface{}) {
src := a.NewSrcString(plumb.AsString(v))
for {
v := see.SeeChamber(src)
if v == nil {
break
}
eye.Show("Value", v)
}
}
开发者ID:mrG7,项目名称:escher,代码行数:10,代码来源:parse.go
示例11: CognizeReader
func (Chunk) CognizeReader(eye *be.Eye, v interface{}) {
r := kio.NewChunkReader(v.(io.Reader))
for {
chunk, err := r.Read()
if err != nil {
return
}
eye.Show("Chunk", chunk)
}
}
开发者ID:mrG7,项目名称:escher,代码行数:10,代码来源:chunk.go
示例12: CognizeView
func (Lookup) CognizeView(eye *be.Eye, v interface{}) {
u := v.(Circuit)
x := u.CircuitAt("Index")
addr := u.VerbAt("Address")
r := be.AsIndex(x).Recall(addr.Address()...)
if r == nil {
eye.Show("NotFound", New().Grow("NotFound", Circuit(addr)).Grow("In", x))
} else {
eye.Show("Found", r)
}
}
开发者ID:mrG7,项目名称:escher,代码行数:11,代码来源:lookup.go
示例13: OverCognize
func (s *Star) OverCognize(eye *be.Eye, name Name, value interface{}) {
if s.f != nil {
s.f(name, value)
}
for gn_, _ := range s.view.Gate {
gn := gn_
if gn == name {
continue
}
go eye.Show(gn, value)
}
}
开发者ID:mrG7,项目名称:escher,代码行数:12,代码来源:star.go
示例14: Spark
func (Index) Spark(eye *be.Eye, matter Circuit, aux ...interface{}) Value {
index, view := matter.CircuitAt("Index"), matter.CircuitAt("View")
go func() {
for vlv, _ := range view.Gate {
eye.Show(vlv, index)
}
}()
if view.Len() == 0 {
return index
}
return nil
}
开发者ID:mrG7,项目名称:escher,代码行数:12,代码来源:index.go
示例15: Spark
func (SourceFile) Spark(eye *be.Eye, _ Circuit, aux ...interface{}) Value {
go func() {
name := aux[0].(string)
file, err := os.Open(name)
if err != nil {
log.Printf("Problem opening file %q (%v)", name, err)
panic("open file")
}
eye.Show(DefaultValve, file)
}()
return nil
}
开发者ID:mrG7,项目名称:escher,代码行数:12,代码来源:sourcefile.go
示例16: CognizeIn
func (Form) CognizeIn(eye *be.Eye, v interface{}) {
td := v.(Circuit)
t, err := template.New("").Parse(td.StringAt("Form"))
if err != nil {
panic(err)
}
var w bytes.Buffer
if err = t.Execute(&w, td.CircuitAt("Data")); err != nil {
panic(err)
}
eye.Show("Out", w.String())
}
开发者ID:mrG7,项目名称:escher,代码行数:12,代码来源:form.go
示例17: yieldIndex
func yieldIndex(eye *be.Eye, x Circuit, path []Name) {
for _, n := range x.SortedNames() {
switch t := x.At(n).(type) {
case Circuit:
if t.Vol() == 0 { // circuits without flow are treated as indices and recursed into
yieldIndex(eye, t, append(path, n))
} else {
eye.Show(DefaultValve, New().Grow("Value", t).Grow("Address", NewAddress(path...)))
}
default:
eye.Show(DefaultValve, New().Grow("Value", t).Grow("Address", NewAddress(path...)))
}
}
}
开发者ID:mrG7,项目名称:escher,代码行数:14,代码来源:yield.go
示例18: OverCognize
func (a *Alternate) OverCognize(eye *be.Eye, valve Name, value interface{}) {
switch valve.(string) {
case "SX":
a.flow[0] <- struct{}{} // obtain token to send
eye.Show("TX", value)
<-a.flow[1] // grant token to other side
case "SY":
a.flow[1] <- struct{}{} // obtain token to send
eye.Show("TY", value)
<-a.flow[0] // grant token to other side
case "TX", "TY":
default:
panic("invalid valve name on alternation gate")
}
}
开发者ID:mrG7,项目名称:escher,代码行数:15,代码来源:alternate.go
示例19: CognizeContent
func (h *WriteFile) CognizeContent(eye *be.Eye, v interface{}) {
<-h.named
switch t := v.(type) {
case string:
ioutil.WriteFile(h.name, []byte(t), 0644)
case []byte:
ioutil.WriteFile(h.name, t, 0644)
case io.Reader:
var w bytes.Buffer
io.Copy(&w, t)
ioutil.WriteFile(h.name, w.Bytes(), 0644)
default:
panic("eh?")
}
eye.Show("Ready", 1)
}
开发者ID:mrG7,项目名称:escher,代码行数:16,代码来源:writefile.go
示例20: Cognize
func (Flows) Cognize(eye *be.Eye, value interface{}) {
u := value.(Circuit)
for xname, xview := range u.Flow {
for xvalve, xvec := range xview {
yname, yvalve := xvec.Gate, xvec.Valve
//
xvalue, yvalue := sanitizeValue(u, xname), sanitizeValue(u, yname)
//
frame := New()
xy := New().Grow("Name", xname).Grow("Value", xvalue).Grow("Valve", xvalve)
yx := New().Grow("Name", xname).Grow("Value", yvalue).Grow("Valve", yvalve)
frame.Grow(0, xy).Grow(1, yx)
eye.Show("Frame", frame)
}
}
eye.Show("End", value)
}
开发者ID:mrG7,项目名称:escher,代码行数:17,代码来源:flows.go
注:本文中的github.com/gocircuit/escher/be.Eye类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论