Skip to content

A Syn Attribute Parser Toolkit

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

magnet/synattra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synattra

Build Status License Cargo Documentation Rust 1.31+

A Syn Attribute Parser Toolkit

Synattra extends Syn and provides structures to easily parse custom attributes.

Notably, Synattra provides a KVOption<K, V> type that allows parsing attributes in the form key = value where key can be any token or custom keyword (including Rust keywords!) and value any type that can be parsed from a TokenStream. Synattra was extracted from the Metered project which needed expressing type paths as option values (e.g path::to::GenericType<u32>), which was not supported by existing attribute parsing systems (neither Syn's own Meta parsing facility or alternate crates such as prom-attire-rs).

Synattra also supports single or multiple values, that can take the shape of Foo or [Foo, Bar].

Finally Synattra provides some extra types, such as InvokePath which represents any invocation handle, macro or not (e.g foo or println!).

By reusing Syn's design, Synattra parsers are very robust and when they compile, they usually work :-).

Changelog

  • 0.3.0:
    • Updated dependencies to use syn 2.0 and auto_enums 0.8
  • 0.2.0:
    • Updated dependencies to use syn, proc-macro2 and quote 1.0

Required Rust version

Synattra runs on Rust stable.

Design

Synattra is using Syn's design for attribute parsing. You can see it in use in the Metered project.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A Syn Attribute Parser Toolkit

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages