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

source

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§

source§

impl Clone for TypeInfo

source§

fn clone(&self) -> TypeInfo

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for TypeInfo

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for TypeInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.