pub enum TypeInfo {
Native(NativeTypeInfo),
Defined(DefinedTypeInfo),
}
Expand description
A description of the type information required to produce a TypeScript type definition.
Variants§
Native(NativeTypeInfo)
This info describes a “native” TypeScript type which does not require a type definition.
Defined(DefinedTypeInfo)
This info describes a “defined” TypeScript type which does require a type definition.
Implementations§
Source§impl TypeInfo
impl TypeInfo
Sourcepub fn write_ref_expr<W>(
&'static self,
writer: W,
root_namespace: Option<&str>,
) -> Result<()>where
W: Write,
pub fn write_ref_expr<W>(
&'static self,
writer: W,
root_namespace: Option<&str>,
) -> Result<()>where
W: Write,
Writes a Typescript type expression referencing this type to the given writer.
This method is meant to be used in generated code referencing types
defined in a module created with write_definition_file
. The
root_namespace
option should be set to the qualified name of the
import of that module.
§Example
use serde::Serialize;
use std::io::Write;
use typescript_type_def::{write_definition_file, TypeDef};
#[derive(Serialize, TypeDef)]
struct Foo<T> {
a: T,
}
let ts_module = {
let mut buf = Vec::new();
// types.ts contains type definitions written using write_definition_file
writeln!(&mut buf, "import * as types from './types';").unwrap();
writeln!(&mut buf).unwrap();
write!(&mut buf, "export function myAPI(foo: ").unwrap();
let foo_type_info = &<Foo<Vec<u8>> as TypeDef>::INFO;
foo_type_info.write_ref_expr(&mut buf, Some("types")).unwrap();
writeln!(&mut buf, ") {{}}").unwrap();
String::from_utf8(buf).unwrap()
};
assert_eq!(
ts_module,
r#"import * as types from './types';
export function myAPI(foo: types.Foo<(types.U8)[]>) {}
"#
);
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TypeInfo
impl RefUnwindSafe for TypeInfo
impl Send for TypeInfo
impl Sync for TypeInfo
impl Unpin for TypeInfo
impl UnwindSafe for TypeInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more