blob: 174a26bee0c9b0c2d58358dbdee1d8d8b346e5f4 [file] [log] [blame]
BanjoAst {
primary_namespace: "banjo.examples.simple",
namespaces: {
"banjo.examples.simple": [
Struct {
attributes: Attrs(
[]
),
name: "Point",
fields: [
StructField {
attributes: Attrs(
[]
),
ty: Int32,
ident: Ident {
namespace: None,
name: "x"
},
val: None
},
StructField {
attributes: Attrs(
[]
),
ty: Int32,
ident: Ident {
namespace: None,
name: "y"
},
val: None
}
]
},
Enum {
attributes: Attrs(
[]
),
name: "Direction",
ty: UInt32,
variants: [
EnumVariant {
attributes: Attrs(
[]
),
name: "Up",
size: Constant(
"0"
)
},
EnumVariant {
attributes: Attrs(
[]
),
name: "Down",
size: Constant(
"1"
)
},
EnumVariant {
attributes: Attrs(
[]
),
name: "Left",
size: Constant(
"2"
)
},
EnumVariant {
attributes: Attrs(
[]
),
name: "Right",
size: Constant(
"3"
)
}
]
},
Interface {
attributes: Attrs(
[
Attr {
key: "Layout",
val: Some(
"Simple"
)
}
]
),
name: "Drawing",
methods: [
Method {
attributes: Attrs(
[]
),
name: "Draw",
in_params: [
(
"p",
Identifier {
id: Ident {
namespace: None,
name: "Point"
},
reference: false
}
),
(
"d",
Identifier {
id: Ident {
namespace: None,
name: "Direction"
},
reference: false
}
)
],
out_params: []
},
Method {
attributes: Attrs(
[]
),
name: "DrawLots",
in_params: [
(
"commands",
Handle {
ty: Vmo,
reference: false
}
)
],
out_params: [
(
"result",
Int32
),
(
"p",
Identifier {
id: Ident {
namespace: None,
name: "Point"
},
reference: false
}
)
]
},
Method {
attributes: Attrs(
[]
),
name: "DrawArray",
in_params: [
(
"points",
Array {
ty: Identifier {
id: Ident {
namespace: None,
name: "Point"
},
reference: false
},
size: Constant(
"4"
)
}
)
],
out_params: [
(
"rv",
Identifier {
id: Ident {
namespace: Some(
"zx"
),
name: "status"
},
reference: false
}
)
]
},
Method {
attributes: Attrs(
[]
),
name: "Describe",
in_params: [
(
"one",
Str {
size: Some(
Constant(
"64"
)
),
nullable: false
}
)
],
out_params: [
(
"two",
Str {
size: Some(
Constant(
"128"
)
),
nullable: false
}
)
]
}
]
}
],
"zx": [
Alias(
Ident {
namespace: None,
name: "status"
},
Ident {
namespace: None,
name: "int32"
}
),
Alias(
Ident {
namespace: None,
name: "time"
},
Ident {
namespace: None,
name: "int64"
}
),
Alias(
Ident {
namespace: None,
name: "duration"
},
Ident {
namespace: None,
name: "int64"
}
),
Alias(
Ident {
namespace: None,
name: "koid"
},
Ident {
namespace: None,
name: "uint64"
}
),
Alias(
Ident {
namespace: None,
name: "vaddr"
},
Ident {
namespace: None,
name: "uint64"
}
),
Alias(
Ident {
namespace: None,
name: "paddr"
},
Ident {
namespace: None,
name: "uint64"
}
),
Alias(
Ident {
namespace: None,
name: "paddr32"
},
Ident {
namespace: None,
name: "uint32"
}
),
Alias(
Ident {
namespace: None,
name: "gpaddr"
},
Ident {
namespace: None,
name: "uint64"
}
),
Alias(
Ident {
namespace: None,
name: "off"
},
Ident {
namespace: None,
name: "uint64"
}
)
]
}
}