Function near_syn::ts::ts_sig [−][src]
pub fn ts_sig(method: &ImplItemMethod) -> String
Returns the signature of the given Rust method
.
The resulting TypeScript binding is a valid method definition expected by the NEAR RPC.
Thus, the following conversion are applied:
- Function arguments are packed into a single TypeScript object argument
- Return type is wrapped into a
Promise
- Types are converted using
ts_type
Examples
use syn::parse_str; use near_syn::ts::ts_sig; assert_eq!(ts_sig(&parse_str("fn a() {}").unwrap()), "a(): Promise<void>;"); assert_eq!(ts_sig(&parse_str("fn b(x: U128) {}").unwrap()), "b(args: { x: U128 }): Promise<void>;"); assert_eq!(ts_sig(&parse_str("fn c(x: U128, y: String) -> Vec<Token> {}").unwrap()), "c(args: { x: U128, y: string }): Promise<Token[]>;"); assert_eq!(ts_sig(&parse_str("fn d(x: U128, y: String, z: Option<U64>) -> Vec<Token> {}").unwrap()), "d(args: { x: U128, y: string, z: U64|null }): Promise<Token[]>;"); assert_eq!(ts_sig(&parse_str("fn e(x: U128) -> () {}").unwrap()), "e(args: { x: U128 }): Promise<void>;"); assert_eq!(ts_sig(&parse_str("fn f(paren: (String)) {}").unwrap()), "f(args: { paren: string }): Promise<void>;"); assert_eq!(ts_sig(&parse_str("fn get(&self) -> u32 {}").unwrap()), "get(): Promise<number>;"); assert_eq!(ts_sig(&parse_str("fn set(&mut self) {}").unwrap()), "set(gas?: any): Promise<void>;"); assert_eq!(ts_sig(&parse_str("fn set_args(&mut self, x: u32) {}").unwrap()), "set_args(args: { x: number }, gas?: any): Promise<void>;"); assert_eq!(ts_sig(&parse_str("fn a() -> Promise {}").unwrap()), "a(): Promise<void>;");