Sign in

    #proton/manifest

    moonbit-community/proton/manifest defines the runtime manifest types shared by bootstrap, native handoff, and the root facade.

    It is a data package. Parsing belongs in bootstrap; application lifecycle belongs in the root proton facade.

    AppEntry

    pub(all) enum AppEntry {
    Html(String)
    Url(String)
    File(String)
    Asset(String)
    } derive(Eq,
    Debug
    )

    Declarative entry content loaded into a Proton application window.
    impl Show for AppEntry

    AppEntry::equal

    fn AppEntry::equal(AppEntry, AppEntry) -> Bool

    AppEntry::not_equal

    fn AppEntry::not_equal(x : AppEntry, y : AppEntry) -> Bool

    AppEntry::output

    fn AppEntry::output(self : AppEntry, logger : &Logger) -> Unit

    AppEntry::to_repr

    AppEntry::to_string

    fn AppEntry::to_string(self : AppEntry) -> String

    AppManifest

    pub struct AppManifest {
    window : WindowManifest
    entry : AppEntry
    windows : Array[AppWindowManifest]
    debug : Int
    extensions : Map[String, ExtensionSetting]
    permissions : Array[PermissionGrant]
    }

    Declarative application manifest consumed by the runtime.

    AppManifest::extension_setting

    fn AppManifest::extension_setting(self : AppManifest, name : String) -> ExtensionSetting?

    Returns one configured extension setting, if present in the manifest. It returns None when the manifest does not mention the extension key at all.

    AppManifest::extension_settings

    fn AppManifest::extension_settings(self : AppManifest) -> Array[(String, ExtensionSetting)]

    Returns the configured extension entries as name/setting pairs. Each pair contains the manifest key together with its normalized declarative enablement state.

    AppManifest::new

    fn AppManifest::new(window : WindowManifest, entry : AppEntry, debug? : Int, windows? : Array[AppWindowManifest], extensions? : Map[String, ExtensionSetting], permissions? : Array[PermissionGrant]) -> AppManifest

    Builds an app manifest. The defaults match the minimal declarative shape accepted by bootstrap so callers can opt into debug, extra windows, or extensions incrementally.

    AppManifest::permission_grants

    fn AppManifest::permission_grants(self : AppManifest) -> Array[PermissionGrant]

    AppWindowManifest

    pub struct AppWindowManifest {
    id : String
    window : WindowManifest
    entry : AppEntry
    open_on_start : Bool
    } derive(Eq,
    Debug
    )

    Declarative secondary window entry consumed by runtime manifests.

    AppWindowManifest::equal

    AppWindowManifest::new

    fn AppWindowManifest::new(id : String, window : WindowManifest, entry : AppEntry, open_on_start? : Bool) -> AppWindowManifest

    Builds a declarative secondary window entry. Secondary windows keep their own id, window settings, and entry payload in the manifest document.

    AppWindowManifest::not_equal

    fn AppWindowManifest::not_equal(x : AppWindowManifest, y : AppWindowManifest) -> Bool

    AppWindowManifest::output

    fn AppWindowManifest::output(self : AppWindowManifest, logger : &Logger) -> Unit

    AppWindowManifest::to_string

    fn AppWindowManifest::to_string(self : AppWindowManifest) -> String

    ExtensionSetting

    pub(all) enum ExtensionSetting {
    Disabled
    Enabled
    } derive(Eq,
    Debug
    )

    Runtime extension setting produced from MoonBit app code.

    Extension-specific configuration is carried by the permission scope, which is validated at configuration time through resolve_permission and read per request through AppCommandRequestContext::permission_scope. This type only records whether an extension is active.

    ExtensionSetting::disabled

    Builds a disabled extension setting. Use this when the manifest should preserve an explicit opt-out entry.

    ExtensionSetting::enabled

    Builds an enabled extension setting.

    ExtensionSetting::equal

    ExtensionSetting::is_enabled

    fn ExtensionSetting::is_enabled(self : ExtensionSetting) -> Bool

    Returns whether this setting enables an extension.

    ExtensionSetting::not_equal

    fn ExtensionSetting::not_equal(x : ExtensionSetting, y : ExtensionSetting) -> Bool

    ExtensionSetting::output

    fn ExtensionSetting::output(self : ExtensionSetting, logger : &Logger) -> Unit

    ExtensionSetting::to_string

    fn ExtensionSetting::to_string(self : ExtensionSetting) -> String

    PermissionGrant

    pub struct PermissionGrant {
    window : String
    origin : PermissionOrigin
    extension : String
    scope : Json
    }

    Grants one extension to one trusted source in one application window.

    Extension registration and permission grants are deliberately separate: registering an extension makes its backend implementation available, while a grant decides which renderer may invoke it. scope is interpreted by the extension and is always copied at the manifest boundary.

    PermissionGrant::extension

    fn PermissionGrant::extension(self : PermissionGrant) -> String

    PermissionGrant::new

    fn PermissionGrant::new(window : String, origin : PermissionOrigin, extension : String, scope? : Json) -> PermissionGrant

    PermissionGrant::origin

    PermissionGrant::scope

    fn PermissionGrant::scope(self : PermissionGrant) -> Json

    PermissionGrant::window

    fn PermissionGrant::window(self : PermissionGrant) -> String

    PermissionOrigin

    pub(all) enum PermissionOrigin {
    App
    Entry
    } derive(Eq,
    Debug
    )

    Selects the trusted page source covered by a permission grant.

    PermissionOrigin::equal

    PermissionOrigin::not_equal

    fn PermissionOrigin::not_equal(x : PermissionOrigin, y : PermissionOrigin) -> Bool

    TitlebarStyle

    pub(all) enum TitlebarStyle {
    Default
    Overlay
    } derive(Eq,
    Debug
    )

    Controls whether web content remains below or extends beneath the native titlebar. Platforms without overlay support keep the default titlebar.

    TitlebarStyle::equal

    TitlebarStyle::not_equal

    fn TitlebarStyle::not_equal(x : TitlebarStyle, y : TitlebarStyle) -> Bool

    TitlebarStyle::output

    fn TitlebarStyle::output(self : TitlebarStyle, logger : &Logger) -> Unit

    TitlebarStyle::to_string

    fn TitlebarStyle::to_string(self : TitlebarStyle) -> String

    WindowManifest

    pub struct WindowManifest {
    title : String
    width : Int
    height : Int
    size_hint : WindowSizeHint
    titlebar_style : TitlebarStyle
    } derive(Eq,
    Debug
    )

    Declarative window settings consumed by runtime manifests.

    WindowManifest::equal

    WindowManifest::new

    fn WindowManifest::new(title : String, width : Int, height : Int, size_hint? : WindowSizeHint, titlebar_style? : TitlebarStyle) -> WindowManifest

    Builds a manifest window configuration. This is the declarative window shape consumed by bootstrap and later turned into runtime WindowConfig values.

    WindowManifest::not_equal

    fn WindowManifest::not_equal(x : WindowManifest, y : WindowManifest) -> Bool

    WindowManifest::output

    fn WindowManifest::output(self : WindowManifest, logger : &Logger) -> Unit

    WindowManifest::to_string

    fn WindowManifest::to_string(self : WindowManifest) -> String

    WindowSizeHint

    pub(all) enum WindowSizeHint {
    None
    Fixed
    Min
    Max
    } derive(Eq,
    Debug
    )

    Declarative sizing hint used by manifest windows.

    WindowSizeHint::equal

    WindowSizeHint::not_equal

    fn WindowSizeHint::not_equal(x : WindowSizeHint, y : WindowSizeHint) -> Bool

    WindowSizeHint::output

    fn WindowSizeHint::output(self : WindowSizeHint, logger : &Logger) -> Unit

    WindowSizeHint::to_string

    fn WindowSizeHint::to_string(self : WindowSizeHint) -> String

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io