MCPcopy Create free account
hub / github.com/clockworklabs/SpacetimeDB / ty_fmt

Function ty_fmt

crates/codegen/src/csharp.rs:1205–1243  ·  view source on GitHub ↗
(module: &'a ModuleDef, ty: &'a AlgebraicTypeUse)

Source from the content-addressed store, hash-verified

1203}
1204
1205fn ty_fmt<'a>(module: &'a ModuleDef, ty: &'a AlgebraicTypeUse) -> impl fmt::Display + 'a {
1206 fmt_fn(move |f| match ty {
1207 AlgebraicTypeUse::Identity => f.write_str("SpacetimeDB.Identity"),
1208 AlgebraicTypeUse::ConnectionId => f.write_str("SpacetimeDB.ConnectionId"),
1209 AlgebraicTypeUse::ScheduleAt => f.write_str("SpacetimeDB.ScheduleAt"),
1210 AlgebraicTypeUse::Timestamp => f.write_str("SpacetimeDB.Timestamp"),
1211 AlgebraicTypeUse::TimeDuration => f.write_str("SpacetimeDB.TimeDuration"),
1212 AlgebraicTypeUse::Uuid => f.write_str("SpacetimeDB.Uuid"),
1213 AlgebraicTypeUse::Unit => f.write_str("SpacetimeDB.Unit"),
1214 AlgebraicTypeUse::Option(inner_ty) => write!(f, "{}?", ty_fmt(module, inner_ty)),
1215 AlgebraicTypeUse::Result { ok_ty, err_ty } => write!(
1216 f,
1217 "SpacetimeDB.Result<{}, {}>",
1218 ty_fmt(module, ok_ty),
1219 ty_fmt(module, err_ty)
1220 ),
1221 AlgebraicTypeUse::Array(elem_ty) => write!(f, "System.Collections.Generic.List<{}>", ty_fmt(module, elem_ty)),
1222 AlgebraicTypeUse::String => f.write_str("string"),
1223 AlgebraicTypeUse::Ref(r) => f.write_str(&type_ref_name(module, *r)),
1224 AlgebraicTypeUse::Primitive(prim) => f.write_str(match prim {
1225 PrimitiveType::Bool => "bool",
1226 PrimitiveType::I8 => "sbyte",
1227 PrimitiveType::U8 => "byte",
1228 PrimitiveType::I16 => "short",
1229 PrimitiveType::U16 => "ushort",
1230 PrimitiveType::I32 => "int",
1231 PrimitiveType::U32 => "uint",
1232 PrimitiveType::I64 => "long",
1233 PrimitiveType::U64 => "ulong",
1234 PrimitiveType::I128 => "I128",
1235 PrimitiveType::U128 => "U128",
1236 PrimitiveType::I256 => "I256",
1237 PrimitiveType::U256 => "U256",
1238 PrimitiveType::F32 => "float",
1239 PrimitiveType::F64 => "double",
1240 }),
1241 AlgebraicTypeUse::Never => unimplemented!(),
1242 })
1243}
1244
1245/// Like `ty_fmt`, but prefixes type references with the provided namespace.
1246fn ty_fmt_with_ns<'a>(module: &'a ModuleDef, ty: &'a AlgebraicTypeUse, namespace: &'a str) -> impl fmt::Display + 'a {

Calls 3

fmt_fnFunction · 0.70
type_ref_nameFunction · 0.70
write_strMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…