impl_parse_result

Macro impl_parse_result 

Source
macro_rules! impl_parse_result {
    ($type:ty, $dep_type:ty {
        dependencies: $dependencies:ident,
        uri: $uri:ident $(,)?
    }) => { ... };
    ($type:ty, $dep_type:ty {
        dependencies: $dependencies:ident,
        uri: $uri:ident,
        workspace_root: $workspace_root:ident $(,)?
    }) => { ... };
}
Expand description

Implement ParseResult trait for a struct.

§Arguments

  • $type - The struct type name
  • $dep_type - The dependency type that implements Dependency
  • dependencies - Field name for dependencies vec (Vec<DepType>)
  • uri - Field name for document URI (Url)
  • workspace_root - Optional: field name for workspace root (Option<PathBuf>)

§Examples

use deps_core::impl_parse_result;

pub struct MyParseResult {
    pub dependencies: Vec<MyDependency>,
    pub uri: Uri,
}

impl_parse_result!(MyParseResult, MyDependency {
    dependencies: dependencies,
    uri: uri,
});

// With workspace root:
impl_parse_result!(MyParseResult, MyDependency {
    dependencies: dependencies,
    uri: uri,
    workspace_root: workspace_root,
});