Enum typescript_type_def::type_expr::TypeInfo
source · [−]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
sourceimpl 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 RefUnwindSafe for TypeInfo
impl Send for TypeInfo
impl Sync for TypeInfo
impl Unpin for TypeInfo
impl UnwindSafe for TypeInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more