pub struct PkgEntity {
pub name: String,
pub version: Option<String>,
pub description: Option<String>,
pub category: Option<String>,
pub docstring: Option<String>,
pub tags: Option<Vec<String>>,
}Expand description
Canonical projection of a Lua package’s M.meta block.
name is required (= hub-index inclusion gate). Other fields are
optional and degrade UI / discoverability when absent, following the
BP convention of Cargo / JSR / npm.
Fields§
§name: String§version: Option<String>§description: Option<String>§category: Option<String>§docstring: Option<String>Implementations§
Source§impl PkgEntity
impl PkgEntity
Sourcepub fn parse_from_init_lua(path: &Path) -> Option<Self>
pub fn parse_from_init_lua(path: &Path) -> Option<Self>
Parse M.meta + leading --- docstring from an init.lua.
Returns None when the file cannot be read, M.meta is absent, or
M.meta.name is empty. Callers treat None as “not a package” and
drop the directory silently from the hub index.
The parser is not a full Lua evaluator:
- Only flat key–value pairs inside
M.metaare extracted. - Nested tables (e.g.
tags = { ... }) are skipped via brace-depth tracking; their keys are not reachable from here. - Values must be string literals (
"..."), optionally joined by..concatenation with whitespace between operators. - Occurrences of
M.metainside single-line comments (-- ...) are ignored, so docstrings mentioning the key do not hijack the search.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PkgEntity
impl<'de> Deserialize<'de> for PkgEntity
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for PkgEntity
impl StructuralPartialEq for PkgEntity
Auto Trait Implementations§
impl Freeze for PkgEntity
impl RefUnwindSafe for PkgEntity
impl Send for PkgEntity
impl Sync for PkgEntity
impl Unpin for PkgEntity
impl UnsafeUnpin for PkgEntity
impl UnwindSafe for PkgEntity
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.