@@ -146,9 +146,44 @@ def __init__(self, rust_ws: RustWorkspace, package: cargo.PackageState) -> None:
146146 self .rust_ws = rust_ws
147147 self .package = package
148148 self .methods .update ({
149+ 'all_features' : self .all_features_method ,
150+ 'api' : self .api_method ,
149151 'dependency' : self .dependency_method ,
152+ 'features' : self .features_method ,
153+ 'name' : self .name_method ,
154+ 'version' : self .version_method ,
150155 })
151156
157+ @noPosargs
158+ @noKwargs
159+ def name_method (self , state : ModuleState , args : T .List , kwargs : TYPE_kwargs ) -> str :
160+ """Returns the name of the package."""
161+ return self .package .manifest .package .name
162+
163+ @noPosargs
164+ @noKwargs
165+ def api_method (self , state : ModuleState , args : T .List , kwargs : TYPE_kwargs ) -> str :
166+ """Returns the API version of the package."""
167+ return self .package .manifest .package .api
168+
169+ @noPosargs
170+ @noKwargs
171+ def version_method (self , state : ModuleState , args : T .List , kwargs : TYPE_kwargs ) -> str :
172+ """Returns the version of the package."""
173+ return self .package .manifest .package .version
174+
175+ @noPosargs
176+ @noKwargs
177+ def all_features_method (self , state : ModuleState , args : T .List , kwargs : TYPE_kwargs ) -> T .List [str ]:
178+ """Returns all features for specific package."""
179+ return sorted (list (self .package .manifest .features .keys ()))
180+
181+ @noPosargs
182+ @noKwargs
183+ def features_method (self , state : ModuleState , args : T .List , kwargs : TYPE_kwargs ) -> T .List [str ]:
184+ """Returns chosen features for specific package."""
185+ return sorted (list (self .package .cfg .features ))
186+
152187 @noPosargs
153188 @typed_kwargs ('package.dependency' ,
154189 KwargInfo ('rust_abi' , (str , NoneType ), default = None , validator = in_set_validator ({'rust' , 'c' , 'proc-macro' })))
0 commit comments