diff --git a/implementors/actix_web/service/trait.HttpServiceFactory.js b/implementors/actix_web/service/trait.HttpServiceFactory.js index 2cbab09..4e95393 100644 --- a/implementors/actix_web/service/trait.HttpServiceFactory.js +++ b/implementors/actix_web/service/trait.HttpServiceFactory.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl HttpServiceFactory for update","synthetic":false,"types":["pages::deploy::update"]},{"text":"impl HttpServiceFactory for deploy_info","synthetic":false,"types":["pages::deploy::deploy_info"]},{"text":"impl HttpServiceFactory for build_details","synthetic":false,"types":["pages::meta::build_details"]}]; +implementors["pages"] = [{"text":"impl HttpServiceFactory for update","synthetic":false,"types":["pages::deploy::update"]},{"text":"impl HttpServiceFactory for deploy_info","synthetic":false,"types":["pages::deploy::deploy_info"]},{"text":"impl HttpServiceFactory for build_details","synthetic":false,"types":["pages::meta::build_details"]},{"text":"impl HttpServiceFactory for index","synthetic":false,"types":["pages::serve::index"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index a1e6ace..4512312 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Clone for Ctx","synthetic":false,"types":["pages::ctx::Ctx"]},{"text":"impl Clone for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl Clone for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Clone for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl<'a> Clone for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]},{"text":"impl Clone for Page","synthetic":false,"types":["pages::page::Page"]},{"text":"impl Clone for Server","synthetic":false,"types":["pages::settings::Server"]},{"text":"impl Clone for Settings","synthetic":false,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl Clone for Ctx","synthetic":false,"types":["pages::ctx::Ctx"]},{"text":"impl Clone for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl Clone for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Clone for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl Clone for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl Clone for FileInfo","synthetic":false,"types":["pages::git::FileInfo"]},{"text":"impl Clone for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl<'a> Clone for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]},{"text":"impl Clone for Page","synthetic":false,"types":["pages::page::Page"]},{"text":"impl Clone for Server","synthetic":false,"types":["pages::settings::Server"]},{"text":"impl Clone for Settings","synthetic":false,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.Eq.js b/implementors/core/cmp/trait.Eq.js new file mode 100644 index 0000000..4985001 --- /dev/null +++ b/implementors/core/cmp/trait.Eq.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["pages"] = [{"text":"impl Eq for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Eq for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl Eq for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl Eq for FileInfo","synthetic":false,"types":["pages::git::FileInfo"]},{"text":"impl Eq for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl Eq for Page","synthetic":false,"types":["pages::page::Page"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialEq.js b/implementors/core/cmp/trait.PartialEq.js index 3918baf..8d8f599 100644 --- a/implementors/core/cmp/trait.PartialEq.js +++ b/implementors/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl PartialEq<DeploySecret> for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl PartialEq<DeployInfo> for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl PartialEq<FSError> for FSError","synthetic":false,"types":["pages::errors::FSError"]},{"text":"impl PartialEq<ConfigError> for ConfigError","synthetic":false,"types":["pages::errors::ConfigError"]},{"text":"impl PartialEq<ServiceError> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl PartialEq<Page> for Page","synthetic":false,"types":["pages::page::Page"]}]; +implementors["pages"] = [{"text":"impl PartialEq<DeploySecret> for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl PartialEq<DeployInfo> for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl PartialEq<FSError> for FSError","synthetic":false,"types":["pages::errors::FSError"]},{"text":"impl PartialEq<ConfigError> for ConfigError","synthetic":false,"types":["pages::errors::ConfigError"]},{"text":"impl PartialEq<ServiceError> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl PartialEq<GitFileMode> for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl PartialEq<FileInfo> for FileInfo","synthetic":false,"types":["pages::git::FileInfo"]},{"text":"impl PartialEq<ContentType> for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl PartialEq<Page> for Page","synthetic":false,"types":["pages::page::Page"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index 62684e9..31d097a 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl From<Error> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<ConfigError> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<ParseError> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<Error> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]}]; +implementors["pages"] = [{"text":"impl From<Error> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<ConfigError> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<ParseError> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<Error> for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl From<isize> for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl From<&TreeEntry<'_>> for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl From<TreeEntry<'_>> for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index 59ac462..b2448a7 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Debug for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl Debug for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Debug for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl Debug for FSError","synthetic":false,"types":["pages::errors::FSError"]},{"text":"impl Debug for ConfigError","synthetic":false,"types":["pages::errors::ConfigError"]},{"text":"impl Debug for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl Debug for ErrorToResponse","synthetic":false,"types":["pages::errors::ErrorToResponse"]},{"text":"impl<'a> Debug for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]},{"text":"impl Debug for Page","synthetic":false,"types":["pages::page::Page"]},{"text":"impl Debug for Server","synthetic":false,"types":["pages::settings::Server"]},{"text":"impl Debug for Settings","synthetic":false,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl Debug for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl Debug for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Debug for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl Debug for FSError","synthetic":false,"types":["pages::errors::FSError"]},{"text":"impl Debug for ConfigError","synthetic":false,"types":["pages::errors::ConfigError"]},{"text":"impl Debug for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl Debug for ErrorToResponse","synthetic":false,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Debug for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl Debug for FileInfo","synthetic":false,"types":["pages::git::FileInfo"]},{"text":"impl Debug for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl<'a> Debug for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]},{"text":"impl Debug for Page","synthetic":false,"types":["pages::page::Page"]},{"text":"impl Debug for Server","synthetic":false,"types":["pages::settings::Server"]},{"text":"impl Debug for Settings","synthetic":false,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index e86145b..1df019f 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Freeze for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Freeze for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Freeze for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Freeze for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Freeze for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Freeze for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Freeze for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Freeze for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Freeze for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Freeze for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Freeze for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Freeze for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Freeze for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Freeze for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Freeze for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl Freeze for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Freeze for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl Freeze for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Freeze for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Freeze for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Freeze for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Freeze for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Freeze for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Freeze for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Freeze for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Freeze for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Freeze for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Freeze for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Freeze for GitFileMode","synthetic":true,"types":["pages::git::GitFileMode"]},{"text":"impl Freeze for FileInfo","synthetic":true,"types":["pages::git::FileInfo"]},{"text":"impl Freeze for ContentType","synthetic":true,"types":["pages::git::ContentType"]},{"text":"impl Freeze for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Freeze for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Freeze for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Freeze for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl<'a> Freeze for Preview<'a>","synthetic":true,"types":["pages::preview::Preview"]},{"text":"impl Freeze for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Freeze for Serve","synthetic":true,"types":["pages::serve::routes::Serve"]},{"text":"impl Freeze for index","synthetic":true,"types":["pages::serve::index"]},{"text":"impl Freeze for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js index 29cf9b5..aaf6deb 100644 --- a/implementors/core/marker/trait.Send.js +++ b/implementors/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Send for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Send for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Send for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Send for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Send for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Send for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Send for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Send for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Send for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Send for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Send for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Send for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Send for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Send for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Send for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl Send for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Send for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Send for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl Send for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Send for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Send for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Send for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Send for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Send for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Send for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Send for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Send for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Send for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Send for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Send for GitFileMode","synthetic":true,"types":["pages::git::GitFileMode"]},{"text":"impl Send for FileInfo","synthetic":true,"types":["pages::git::FileInfo"]},{"text":"impl Send for ContentType","synthetic":true,"types":["pages::git::ContentType"]},{"text":"impl Send for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Send for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Send for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Send for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl<'a> Send for Preview<'a>","synthetic":true,"types":["pages::preview::Preview"]},{"text":"impl Send for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Send for Serve","synthetic":true,"types":["pages::serve::routes::Serve"]},{"text":"impl Send for index","synthetic":true,"types":["pages::serve::index"]},{"text":"impl Send for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Send for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralEq.js b/implementors/core/marker/trait.StructuralEq.js new file mode 100644 index 0000000..3e11d09 --- /dev/null +++ b/implementors/core/marker/trait.StructuralEq.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["pages"] = [{"text":"impl StructuralEq for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl StructuralEq for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl StructuralEq for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl StructuralEq for FileInfo","synthetic":false,"types":["pages::git::FileInfo"]},{"text":"impl StructuralEq for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl StructuralEq for Page","synthetic":false,"types":["pages::page::Page"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralPartialEq.js b/implementors/core/marker/trait.StructuralPartialEq.js index 465fee6..5d1ecca 100644 --- a/implementors/core/marker/trait.StructuralPartialEq.js +++ b/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl StructuralPartialEq for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl StructuralPartialEq for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl StructuralPartialEq for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl StructuralPartialEq for Page","synthetic":false,"types":["pages::page::Page"]}]; +implementors["pages"] = [{"text":"impl StructuralPartialEq for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl StructuralPartialEq for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl StructuralPartialEq for ServiceError","synthetic":false,"types":["pages::errors::ServiceError"]},{"text":"impl StructuralPartialEq for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]},{"text":"impl StructuralPartialEq for FileInfo","synthetic":false,"types":["pages::git::FileInfo"]},{"text":"impl StructuralPartialEq for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl StructuralPartialEq for Page","synthetic":false,"types":["pages::page::Page"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js index 0240008..dffd27f 100644 --- a/implementors/core/marker/trait.Sync.js +++ b/implementors/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Sync for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Sync for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Sync for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Sync for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Sync for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Sync for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Sync for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Sync for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Sync for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Sync for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Sync for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Sync for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Sync for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Sync for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Sync for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl Sync for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Sync for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Sync for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl Sync for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Sync for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Sync for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Sync for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Sync for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Sync for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Sync for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Sync for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Sync for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Sync for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Sync for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Sync for GitFileMode","synthetic":true,"types":["pages::git::GitFileMode"]},{"text":"impl Sync for FileInfo","synthetic":true,"types":["pages::git::FileInfo"]},{"text":"impl Sync for ContentType","synthetic":true,"types":["pages::git::ContentType"]},{"text":"impl Sync for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Sync for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Sync for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Sync for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl<'a> Sync for Preview<'a>","synthetic":true,"types":["pages::preview::Preview"]},{"text":"impl Sync for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Sync for Serve","synthetic":true,"types":["pages::serve::routes::Serve"]},{"text":"impl Sync for index","synthetic":true,"types":["pages::serve::index"]},{"text":"impl Sync for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Sync for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js index 5d67e45..20257f8 100644 --- a/implementors/core/marker/trait.Unpin.js +++ b/implementors/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Unpin for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Unpin for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Unpin for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Unpin for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Unpin for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Unpin for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Unpin for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Unpin for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Unpin for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Unpin for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Unpin for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Unpin for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Unpin for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Unpin for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Unpin for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl Unpin for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Unpin for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl Unpin for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl Unpin for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl Unpin for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl Unpin for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl Unpin for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl Unpin for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl Unpin for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl Unpin for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl Unpin for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl Unpin for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl Unpin for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Unpin for GitFileMode","synthetic":true,"types":["pages::git::GitFileMode"]},{"text":"impl Unpin for FileInfo","synthetic":true,"types":["pages::git::FileInfo"]},{"text":"impl Unpin for ContentType","synthetic":true,"types":["pages::git::ContentType"]},{"text":"impl Unpin for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> Unpin for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl Unpin for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl Unpin for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl<'a> Unpin for Preview<'a>","synthetic":true,"types":["pages::preview::Preview"]},{"text":"impl Unpin for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl Unpin for Serve","synthetic":true,"types":["pages::serve::routes::Serve"]},{"text":"impl Unpin for index","synthetic":true,"types":["pages::serve::index"]},{"text":"impl Unpin for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index ef02400..6b98fcb 100644 --- a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl RefUnwindSafe for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl RefUnwindSafe for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl RefUnwindSafe for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl RefUnwindSafe for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl RefUnwindSafe for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl RefUnwindSafe for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl RefUnwindSafe for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl !RefUnwindSafe for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl !RefUnwindSafe for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl !RefUnwindSafe for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl RefUnwindSafe for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl RefUnwindSafe for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> RefUnwindSafe for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl RefUnwindSafe for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl RefUnwindSafe for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl RefUnwindSafe for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl RefUnwindSafe for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl RefUnwindSafe for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl RefUnwindSafe for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl RefUnwindSafe for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl RefUnwindSafe for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl RefUnwindSafe for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl RefUnwindSafe for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl !RefUnwindSafe for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl !RefUnwindSafe for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl !RefUnwindSafe for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl RefUnwindSafe for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl RefUnwindSafe for GitFileMode","synthetic":true,"types":["pages::git::GitFileMode"]},{"text":"impl RefUnwindSafe for FileInfo","synthetic":true,"types":["pages::git::FileInfo"]},{"text":"impl RefUnwindSafe for ContentType","synthetic":true,"types":["pages::git::ContentType"]},{"text":"impl RefUnwindSafe for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> RefUnwindSafe for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl RefUnwindSafe for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl RefUnwindSafe for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl<'a> RefUnwindSafe for Preview<'a>","synthetic":true,"types":["pages::preview::Preview"]},{"text":"impl RefUnwindSafe for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl RefUnwindSafe for Serve","synthetic":true,"types":["pages::serve::routes::Serve"]},{"text":"impl RefUnwindSafe for index","synthetic":true,"types":["pages::serve::index"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index baf9f40..3def12d 100644 --- a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl UnwindSafe for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl UnwindSafe for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl UnwindSafe for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl UnwindSafe for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl UnwindSafe for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl UnwindSafe for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl UnwindSafe for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl !UnwindSafe for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl !UnwindSafe for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl !UnwindSafe for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl UnwindSafe for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl UnwindSafe for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> UnwindSafe for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl UnwindSafe for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl UnwindSafe for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl UnwindSafe for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl UnwindSafe for Ctx","synthetic":true,"types":["pages::ctx::Ctx"]},{"text":"impl UnwindSafe for Deploy","synthetic":true,"types":["pages::deploy::routes::Deploy"]},{"text":"impl UnwindSafe for DeployEvent","synthetic":true,"types":["pages::deploy::DeployEvent"]},{"text":"impl UnwindSafe for update","synthetic":true,"types":["pages::deploy::update"]},{"text":"impl UnwindSafe for DeploySecret","synthetic":true,"types":["pages::deploy::DeploySecret"]},{"text":"impl UnwindSafe for DeployInfo","synthetic":true,"types":["pages::deploy::DeployInfo"]},{"text":"impl UnwindSafe for deploy_info","synthetic":true,"types":["pages::deploy::deploy_info"]},{"text":"impl !UnwindSafe for FSError","synthetic":true,"types":["pages::errors::FSError"]},{"text":"impl !UnwindSafe for ConfigError","synthetic":true,"types":["pages::errors::ConfigError"]},{"text":"impl !UnwindSafe for ServiceError","synthetic":true,"types":["pages::errors::ServiceError"]},{"text":"impl UnwindSafe for ErrorToResponse","synthetic":true,"types":["pages::errors::ErrorToResponse"]},{"text":"impl UnwindSafe for GitFileMode","synthetic":true,"types":["pages::git::GitFileMode"]},{"text":"impl UnwindSafe for FileInfo","synthetic":true,"types":["pages::git::FileInfo"]},{"text":"impl UnwindSafe for ContentType","synthetic":true,"types":["pages::git::ContentType"]},{"text":"impl UnwindSafe for Meta","synthetic":true,"types":["pages::meta::routes::Meta"]},{"text":"impl<'a> UnwindSafe for BuildDetails<'a>","synthetic":true,"types":["pages::meta::BuildDetails"]},{"text":"impl UnwindSafe for build_details","synthetic":true,"types":["pages::meta::build_details"]},{"text":"impl UnwindSafe for Page","synthetic":true,"types":["pages::page::Page"]},{"text":"impl<'a> UnwindSafe for Preview<'a>","synthetic":true,"types":["pages::preview::Preview"]},{"text":"impl UnwindSafe for Routes","synthetic":true,"types":["pages::routes::Routes"]},{"text":"impl UnwindSafe for Serve","synthetic":true,"types":["pages::serve::routes::Serve"]},{"text":"impl UnwindSafe for index","synthetic":true,"types":["pages::serve::index"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["pages::settings::Server"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/num_enum/trait.FromPrimitive.js b/implementors/num_enum/trait.FromPrimitive.js new file mode 100644 index 0000000..5c14282 --- /dev/null +++ b/implementors/num_enum/trait.FromPrimitive.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["pages"] = [{"text":"impl FromPrimitive for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/num_enum/trait.TryFromPrimitive.js b/implementors/num_enum/trait.TryFromPrimitive.js new file mode 100644 index 0000000..31013d8 --- /dev/null +++ b/implementors/num_enum/trait.TryFromPrimitive.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["pages"] = [{"text":"impl TryFromPrimitive for GitFileMode","synthetic":false,"types":["pages::git::GitFileMode"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/serde/de/trait.Deserialize.js b/implementors/serde/de/trait.Deserialize.js index d843033..6f489fd 100644 --- a/implementors/serde/de/trait.Deserialize.js +++ b/implementors/serde/de/trait.Deserialize.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl<'de> Deserialize<'de> for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl<'de> Deserialize<'de> for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl<'de> Deserialize<'de> for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl<'de> Deserialize<'de> for ErrorToResponse","synthetic":false,"types":["pages::errors::ErrorToResponse"]},{"text":"impl<'de: 'a, 'a> Deserialize<'de> for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]},{"text":"impl<'de> Deserialize<'de> for Page","synthetic":false,"types":["pages::page::Page"]},{"text":"impl<'de> Deserialize<'de> for Server","synthetic":false,"types":["pages::settings::Server"]},{"text":"impl<'de> Deserialize<'de> for Settings","synthetic":false,"types":["pages::settings::Settings"]}]; +implementors["pages"] = [{"text":"impl<'de> Deserialize<'de> for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl<'de> Deserialize<'de> for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl<'de> Deserialize<'de> for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl<'de> Deserialize<'de> for ErrorToResponse","synthetic":false,"types":["pages::errors::ErrorToResponse"]},{"text":"impl<'de> Deserialize<'de> for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl<'de: 'a, 'a> Deserialize<'de> for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]},{"text":"impl<'de> Deserialize<'de> for Page","synthetic":false,"types":["pages::page::Page"]},{"text":"impl<'de> Deserialize<'de> for Server","synthetic":false,"types":["pages::settings::Server"]},{"text":"impl<'de> Deserialize<'de> for Settings","synthetic":false,"types":["pages::settings::Settings"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/serde/ser/trait.Serialize.js b/implementors/serde/ser/trait.Serialize.js index d222e22..c0db80a 100644 --- a/implementors/serde/ser/trait.Serialize.js +++ b/implementors/serde/ser/trait.Serialize.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["pages"] = [{"text":"impl Serialize for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl Serialize for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Serialize for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl Serialize for ErrorToResponse","synthetic":false,"types":["pages::errors::ErrorToResponse"]},{"text":"impl<'a> Serialize for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]}]; +implementors["pages"] = [{"text":"impl Serialize for DeployEvent","synthetic":false,"types":["pages::deploy::DeployEvent"]},{"text":"impl Serialize for DeploySecret","synthetic":false,"types":["pages::deploy::DeploySecret"]},{"text":"impl Serialize for DeployInfo","synthetic":false,"types":["pages::deploy::DeployInfo"]},{"text":"impl Serialize for ErrorToResponse","synthetic":false,"types":["pages::errors::ErrorToResponse"]},{"text":"impl Serialize for ContentType","synthetic":false,"types":["pages::git::ContentType"]},{"text":"impl<'a> Serialize for BuildDetails<'a>","synthetic":false,"types":["pages::meta::BuildDetails"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/pages/all.html b/pages/all.html index 2668d7c..b4f99e9 100644 --- a/pages/all.html +++ b/pages/all.html @@ -4,5 +4,5 @@

List of all items

Structs

Enums

Functions

Typedefs

Constants

+

List of all items

Structs

Enums

Functions

Typedefs

Constants

\ No newline at end of file diff --git a/pages/constant.CACHE_AGE.html b/pages/constant.CACHE_AGE.html index 00b8781..7974c19 100644 --- a/pages/constant.CACHE_AGE.html +++ b/pages/constant.CACHE_AGE.html @@ -5,5 +5,5 @@
-

Constant pages::CACHE_AGE

source · []
pub const CACHE_AGE: u32 = 604800;
+

Constant pages::CACHE_AGE

source · []
pub const CACHE_AGE: u32 = 604800;
\ No newline at end of file diff --git a/pages/constant.GIT_COMMIT_HASH.html b/pages/constant.GIT_COMMIT_HASH.html index d0ce2a6..f921b6e 100644 --- a/pages/constant.GIT_COMMIT_HASH.html +++ b/pages/constant.GIT_COMMIT_HASH.html @@ -5,5 +5,5 @@
pub const GIT_COMMIT_HASH: &str = "5978d178bcae7cfda3ace462e4eb9cacb210ff00";
+

Constant pages::GIT_COMMIT_HASH

source · []
pub const GIT_COMMIT_HASH: &str = "d6fc9ad67f5171479eec36d02edf8b18880b8ece";
\ No newline at end of file diff --git a/pages/constant.PKG_DESCRIPTION.html b/pages/constant.PKG_DESCRIPTION.html index bef1969..363b2c4 100644 --- a/pages/constant.PKG_DESCRIPTION.html +++ b/pages/constant.PKG_DESCRIPTION.html @@ -5,5 +5,5 @@
pub const PKG_DESCRIPTION: &str = "";
+

Constant pages::PKG_DESCRIPTION

source · []
pub const PKG_DESCRIPTION: &str = "";
\ No newline at end of file diff --git a/pages/constant.PKG_HOMEPAGE.html b/pages/constant.PKG_HOMEPAGE.html index 32bf8cc..4f4e392 100644 --- a/pages/constant.PKG_HOMEPAGE.html +++ b/pages/constant.PKG_HOMEPAGE.html @@ -5,5 +5,5 @@
pub const PKG_HOMEPAGE: &str = "https://github.com/realaravinth/pages";
+

Constant pages::PKG_HOMEPAGE

source · []
pub const PKG_HOMEPAGE: &str = "https://github.com/realaravinth/pages";
\ No newline at end of file diff --git a/pages/constant.PKG_NAME.html b/pages/constant.PKG_NAME.html index 1ecae2d..ca5e20a 100644 --- a/pages/constant.PKG_NAME.html +++ b/pages/constant.PKG_NAME.html @@ -5,5 +5,5 @@
-

Constant pages::PKG_NAME

source · []
pub const PKG_NAME: &str = "pages";
+

Constant pages::PKG_NAME

source · []
pub const PKG_NAME: &str = "pages";
\ No newline at end of file diff --git a/pages/constant.V1_API_ROUTES.html b/pages/constant.V1_API_ROUTES.html index 9e6541b..24848b2 100644 --- a/pages/constant.V1_API_ROUTES.html +++ b/pages/constant.V1_API_ROUTES.html @@ -5,5 +5,5 @@
pub const V1_API_ROUTES: Routes;
+

Constant pages::V1_API_ROUTES

source · []
pub const V1_API_ROUTES: Routes;
\ No newline at end of file diff --git a/pages/constant.VERSION.html b/pages/constant.VERSION.html index 2566e7b..3974d50 100644 --- a/pages/constant.VERSION.html +++ b/pages/constant.VERSION.html @@ -5,5 +5,5 @@
-

Constant pages::VERSION

source · []
pub const VERSION: &str = "0.1.0";
+

Constant pages::VERSION

source · []
pub const VERSION: &str = "0.1.0";
\ No newline at end of file diff --git a/pages/ctx/struct.Ctx.html b/pages/ctx/struct.Ctx.html index 7405b90..6ecc183 100644 --- a/pages/ctx/struct.Ctx.html +++ b/pages/ctx/struct.Ctx.html @@ -13,10 +13,10 @@

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -28,9 +28,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/deploy/fn.find_page.html b/pages/deploy/fn.find_page.html index 6672199..1ba41fe 100644 --- a/pages/deploy/fn.find_page.html +++ b/pages/deploy/fn.find_page.html @@ -5,5 +5,5 @@
fn find_page<'a>(secret: &str, ctx: &'a AppCtx) -> Option<&'a Page>
+

Function pages::deploy::find_page

source · []
pub fn find_page<'a>(secret: &str, ctx: &'a AppCtx) -> Option<&'a Page>
\ No newline at end of file diff --git a/pages/deploy/index.html b/pages/deploy/index.html index 54cb2b0..62ffe43 100644 --- a/pages/deploy/index.html +++ b/pages/deploy/index.html @@ -8,5 +8,5 @@

Module pages::deploy

source · []

Modules

Structs

Functions

-
find_page 🔒
+
\ No newline at end of file diff --git a/pages/deploy/routes/struct.Deploy.html b/pages/deploy/routes/struct.Deploy.html index a866e61..6be27f2 100644 --- a/pages/deploy/routes/struct.Deploy.html +++ b/pages/deploy/routes/struct.Deploy.html @@ -12,10 +12,10 @@

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -24,9 +24,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/deploy/struct.DeployEvent.html b/pages/deploy/struct.DeployEvent.html index f548e9b..25a87ab 100644 --- a/pages/deploy/struct.DeployEvent.html +++ b/pages/deploy/struct.DeployEvent.html @@ -11,16 +11,16 @@ }

Fields

secret: Stringbranch: String

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -32,9 +32,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/deploy/struct.DeployInfo.html b/pages/deploy/struct.DeployInfo.html index dd2dcfd..d489c2d 100644 --- a/pages/deploy/struct.DeployInfo.html +++ b/pages/deploy/struct.DeployInfo.html @@ -2,7 +2,7 @@

pub struct DeployInfo {
@@ -12,19 +12,20 @@
 }

Fields

head: Stringremote: Stringcommit: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -36,9 +37,9 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/deploy/struct.DeploySecret.html b/pages/deploy/struct.DeploySecret.html index 99917df..9890b3d 100644 --- a/pages/deploy/struct.DeploySecret.html +++ b/pages/deploy/struct.DeploySecret.html @@ -2,7 +2,7 @@

pub struct DeploySecret {
@@ -10,19 +10,20 @@
 }

Fields

secret: String

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -34,9 +35,9 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/deploy/struct.deploy_info.html b/pages/deploy/struct.deploy_info.html index 4ac0bb0..8821874 100644 --- a/pages/deploy/struct.deploy_info.html +++ b/pages/deploy/struct.deploy_info.html @@ -9,10 +9,10 @@

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -21,9 +21,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/deploy/struct.update.html b/pages/deploy/struct.update.html index 4a87624..5d982d8 100644 --- a/pages/deploy/struct.update.html +++ b/pages/deploy/struct.update.html @@ -9,10 +9,10 @@

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -21,9 +21,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/errors/enum.ServiceError.html b/pages/errors/enum.ServiceError.html index 88ae7a1..9ef8a35 100644 --- a/pages/errors/enum.ServiceError.html +++ b/pages/errors/enum.ServiceError.html @@ -41,15 +41,15 @@ by ==. Read more

This method tests for !=.

Creates full response for error. Read more

-

Returns appropriate status code for error. Read more

+

Returns appropriate status code for error. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -59,9 +59,9 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/errors/struct.ConfigError.html b/pages/errors/struct.ConfigError.html index 355ffac..61dc067 100644 --- a/pages/errors/struct.ConfigError.html +++ b/pages/errors/struct.ConfigError.html @@ -18,10 +18,10 @@ by ==.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -31,9 +31,9 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/errors/struct.ErrorToResponse.html b/pages/errors/struct.ErrorToResponse.html index 13757dc..a8df22d 100644 --- a/pages/errors/struct.ErrorToResponse.html +++ b/pages/errors/struct.ErrorToResponse.html @@ -8,16 +8,16 @@

Struct pages::errors::ErrorToResponse

source · []
pub struct ErrorToResponse {
     pub error: String,
 }

Fields

error: String

Trait Implementations

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -26,9 +26,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/errors/struct.FSError.html b/pages/errors/struct.FSError.html index 936f05e..db42076 100644 --- a/pages/errors/struct.FSError.html +++ b/pages/errors/struct.FSError.html @@ -18,10 +18,10 @@ by ==.

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -31,9 +31,9 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/fn.get_json_err.html b/pages/fn.get_json_err.html index b555d47..41c9fe4 100644 --- a/pages/fn.get_json_err.html +++ b/pages/fn.get_json_err.html @@ -5,5 +5,5 @@
pub fn get_json_err() -> JsonConfig
+

Function pages::get_json_err

source · []
pub fn get_json_err() -> JsonConfig
\ No newline at end of file diff --git a/pages/fn.main.html b/pages/fn.main.html index c553655..daed125 100644 --- a/pages/fn.main.html +++ b/pages/fn.main.html @@ -5,5 +5,5 @@
-

Function pages::main

source · []
pub(crate) fn main() -> Result<()>
+

Function pages::main

source · []
pub(crate) fn main() -> Result<()>
\ No newline at end of file diff --git a/pages/fn.services.html b/pages/fn.services.html index 0c34b75..8568e4a 100644 --- a/pages/fn.services.html +++ b/pages/fn.services.html @@ -5,5 +5,5 @@
-

Function pages::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+

Function pages::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/pages/git/enum.ContentType.html b/pages/git/enum.ContentType.html new file mode 100644 index 0000000..072d3bd --- /dev/null +++ b/pages/git/enum.ContentType.html @@ -0,0 +1,44 @@ +ContentType in pages::git - Rust +
pub enum ContentType {
+    Binary(Vec<u8>),
+    Text(String),
+}

Variants

Binary(Vec<u8>)

Text(String)

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/pages/git/enum.GitFileMode.html b/pages/git/enum.GitFileMode.html new file mode 100644 index 0000000..efdd73e --- /dev/null +++ b/pages/git/enum.GitFileMode.html @@ -0,0 +1,77 @@ +GitFileMode in pages::git - Rust +
#[repr(isize)]
+pub enum GitFileMode {
+    Empty,
+    Regular,
+    Dir,
+    Deprecated,
+    Executable,
+    Symlink,
+    Submodule,
+    Unsupported,
+}
Expand description

A FileMode represents the kind of tree entries used by git. It +resembles regular file systems modes, although FileModes are +considerably simpler (there are not so many), and there are some, +like Submodule that has no file system equivalent.

+

Variants

Empty

Empty is used as the GitFileMode of tree elements when comparing +trees in the following situations:

+
    +
  • the mode of tree elements before their creation.
  • +
  • the mode of tree elements after their deletion.
  • +
  • the mode of unmerged elements when checking the index.
  • +
+

Empty has no file system equivalent. As Empty is the zero value +of GitFileMode

+

Regular

Regular represent non-executable files.

+

Dir

Dir represent a Directory.

+

Deprecated

Deprecated represent non-executable files with the group writable bit set. This mode was +supported by the first versions of git, but it has been deprecated nowadays. This +library(github.com/go-git/go-git uses it, not realaravinth/gitpad at the moment) uses them +internally, so you can read old packfiles, but will treat them as Regulars when interfacing +with the outside world. This is the standard git behaviour.

+

Executable

Executable represents executable files.

+

Symlink represents symbolic links to files.

+

Submodule

Submodule represents git submodules. This mode has no file system +equivalent.

+

Unsupported

Unsupported file mode

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/pages/git/fn.read_file.html b/pages/git/fn.read_file.html new file mode 100644 index 0000000..2d784a6 --- /dev/null +++ b/pages/git/fn.read_file.html @@ -0,0 +1,14 @@ +read_file in pages::git - Rust +
+

Function pages::git::read_file

source · []
pub fn read_file(repo_path: &str, path: &str) -> Result<FileInfo, ServiceError>
Expand description

Please note that this method expects path to not contain any spaces +Use [escape_spaces] before calling this method

+

For example, a read request for “foo bar.md” will fail even if that file is present +in the repository. However, it will succeed if the output of [escape_spaces] is +used in the request.

+
+ \ No newline at end of file diff --git a/pages/git/fn.read_file_inner.html b/pages/git/fn.read_file_inner.html new file mode 100644 index 0000000..595a776 --- /dev/null +++ b/pages/git/fn.read_file_inner.html @@ -0,0 +1,9 @@ +read_file_inner in pages::git - Rust +
fn read_file_inner(
    repo: &Repository,
    path: &str,
    tree: &Tree<'_>
) -> Result<FileInfo, ServiceError>
+ \ No newline at end of file diff --git a/pages/git/fn.read_preview_file.html b/pages/git/fn.read_preview_file.html new file mode 100644 index 0000000..6939a8d --- /dev/null +++ b/pages/git/fn.read_preview_file.html @@ -0,0 +1,9 @@ +read_preview_file in pages::git - Rust +
pub fn read_preview_file(
    repo_path: &str,
    preview_name: &str,
    path: &str
) -> Result<FileInfo, ServiceError>
+ \ No newline at end of file diff --git a/pages/git/index.html b/pages/git/index.html new file mode 100644 index 0000000..479e0e1 --- /dev/null +++ b/pages/git/index.html @@ -0,0 +1,18 @@ +pages::git - Rust +
+

Module pages::git

source · []

Structs

+

Enums

+

A FileMode represents the kind of tree entries used by git. It +resembles regular file systems modes, although FileModes are +considerably simpler (there are not so many), and there are some, +like Submodule that has no file system equivalent.

+

Functions

+

Please note that this method expects path to not contain any spaces +Use [escape_spaces] before calling this method

+
+ \ No newline at end of file diff --git a/pages/git/sidebar-items.js b/pages/git/sidebar-items.js new file mode 100644 index 0000000..bf4bc2b --- /dev/null +++ b/pages/git/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":[["ContentType",""],["GitFileMode","A FileMode represents the kind of tree entries used by git. It resembles regular file systems modes, although FileModes are considerably simpler (there are not so many), and there are some, like Submodule that has no file system equivalent."]],"fn":[["read_file","Please note that this method expects path to not contain any spaces Use [escape_spaces] before calling this method"],["read_file_inner",""],["read_preview_file",""]],"struct":[["FileInfo",""]]}; \ No newline at end of file diff --git a/pages/git/struct.FileInfo.html b/pages/git/struct.FileInfo.html new file mode 100644 index 0000000..7376d5d --- /dev/null +++ b/pages/git/struct.FileInfo.html @@ -0,0 +1,43 @@ +FileInfo in pages::git - Rust +
+

Struct pages::git::FileInfo

source · []
pub struct FileInfo {
+    pub filename: String,
+    pub content: ContentType,
+    pub mime: MimeGuess,
+}

Fields

filename: Stringcontent: ContentTypemime: MimeGuess

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/pages/index.html b/pages/index.html index b7ae970..6ce7370 100644 --- a/pages/index.html +++ b/pages/index.html @@ -5,9 +5,9 @@

Crate pages

-

Crate pages

source · []

Modules

+

Crate pages

source · []

Modules

ctx 🔒
deploy 🔒
errors 🔒

represents all the ways a trait can fail using this crate

-
meta 🔒
page 🔒
routes 🔒
settings 🔒

Structs

+
git 🔒
meta 🔒
page 🔒
preview 🔒
routes 🔒
serve 🔒
settings 🔒

Structs

Constants

Functions

main 🔒

Type Definitions

diff --git a/pages/meta/routes/struct.Meta.html b/pages/meta/routes/struct.Meta.html index e94b1d1..5cbc0ef 100644 --- a/pages/meta/routes/struct.Meta.html +++ b/pages/meta/routes/struct.Meta.html @@ -12,10 +12,10 @@

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -24,9 +24,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/meta/struct.BuildDetails.html b/pages/meta/struct.BuildDetails.html index efc0b94..4cf5d80 100644 --- a/pages/meta/struct.BuildDetails.html +++ b/pages/meta/struct.BuildDetails.html @@ -12,16 +12,16 @@ }

Fields

version: &'a strgit_commit_hash: &'a strsource_code: &'a str

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -33,9 +33,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/meta/struct.build_details.html b/pages/meta/struct.build_details.html index f7e2f2c..29c3d6a 100644 --- a/pages/meta/struct.build_details.html +++ b/pages/meta/struct.build_details.html @@ -10,10 +10,10 @@

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -22,9 +22,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/page/index.html b/pages/page/index.html index 2d7ed10..f66c406 100644 --- a/pages/page/index.html +++ b/pages/page/index.html @@ -5,6 +5,6 @@

Module page

-

Module pages::page

source · []

Structs

+

Module pages::page

source · []

Structs

\ No newline at end of file diff --git a/pages/page/struct.Page.html b/pages/page/struct.Page.html index 8411768..e2ceb89 100644 --- a/pages/page/struct.Page.html +++ b/pages/page/struct.Page.html @@ -2,29 +2,31 @@

-

Struct pages::page::Page

source · []
pub struct Page {
+    

Struct pages::page::Page

source · []
pub struct Page {
     pub secret: String,
     pub repo: String,
     pub path: String,
     pub branch: String,
-}

Fields

secret: Stringrepo: Stringpath: Stringbranch: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

+ pub domain: String, +}

Fields

secret: Stringrepo: Stringpath: Stringbranch: Stringdomain: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used +

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

+

Compare self to key and return true if they are equal.

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -36,9 +38,9 @@ by ==.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/preview/index.html b/pages/preview/index.html new file mode 100644 index 0000000..234e664 --- /dev/null +++ b/pages/preview/index.html @@ -0,0 +1,10 @@ +pages::preview - Rust +
+

Module pages::preview

source · []

Structs

+
+ \ No newline at end of file diff --git a/pages/preview/sidebar-items.js b/pages/preview/sidebar-items.js new file mode 100644 index 0000000..6f14dfe --- /dev/null +++ b/pages/preview/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":[["Preview",""]]}; \ No newline at end of file diff --git a/pages/preview/struct.Preview.html b/pages/preview/struct.Preview.html new file mode 100644 index 0000000..6291fba --- /dev/null +++ b/pages/preview/struct.Preview.html @@ -0,0 +1,33 @@ +Preview in pages::preview - Rust +
pub struct Preview<'a> {
+    pub base: &'a str,
+    pub delimiter: &'static str,
+    pub prefix: &'static str,
+}

Fields

base: &'a strdelimiter: &'static strprefix: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/pages/routes/constant.ROUTES.html b/pages/routes/constant.ROUTES.html index 5a0a572..1c33e20 100644 --- a/pages/routes/constant.ROUTES.html +++ b/pages/routes/constant.ROUTES.html @@ -5,5 +5,5 @@
-

Constant pages::routes::ROUTES

source · []
pub const ROUTES: Routes;
+

Constant pages::routes::ROUTES

source · []
pub const ROUTES: Routes;
\ No newline at end of file diff --git a/pages/routes/fn.services.html b/pages/routes/fn.services.html index 53a2249..fdb3003 100644 --- a/pages/routes/fn.services.html +++ b/pages/routes/fn.services.html @@ -5,5 +5,5 @@
-

Function pages::routes::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+

Function pages::routes::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/pages/routes/index.html b/pages/routes/index.html index 935461a..09a3817 100644 --- a/pages/routes/index.html +++ b/pages/routes/index.html @@ -5,7 +5,7 @@

Module routes

-

Module pages::routes

source · []

Structs

+

Module pages::routes

source · []

Structs

Constants

Functions

diff --git a/pages/routes/struct.Routes.html b/pages/routes/struct.Routes.html index 43accff..982e93f 100644 --- a/pages/routes/struct.Routes.html +++ b/pages/routes/struct.Routes.html @@ -2,20 +2,21 @@

pub struct Routes {
+    

Struct pages::routes::Routes

source · []
pub struct Routes {
     pub meta: Meta,
     pub deploy: Deploy,
-}

Fields

meta: Metadeploy: Deploy

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+ pub serve: Serve, +}

Fields

meta: Metadeploy: Deployserve: Serve

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -24,9 +25,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

\ No newline at end of file diff --git a/pages/serve/fn.find_page.html b/pages/serve/fn.find_page.html new file mode 100644 index 0000000..ec6f946 --- /dev/null +++ b/pages/serve/fn.find_page.html @@ -0,0 +1,9 @@ +find_page in pages::serve - Rust +
+

Function pages::serve::find_page

source · []
pub fn find_page<'a>(domain: &str, ctx: &'a AppCtx) -> Option<&'a Page>
+ \ No newline at end of file diff --git a/pages/serve/fn.services.html b/pages/serve/fn.services.html new file mode 100644 index 0000000..59c93a6 --- /dev/null +++ b/pages/serve/fn.services.html @@ -0,0 +1,9 @@ +services in pages::serve - Rust +
+

Function pages::serve::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+ \ No newline at end of file diff --git a/pages/serve/index.html b/pages/serve/index.html new file mode 100644 index 0000000..1623e78 --- /dev/null +++ b/pages/serve/index.html @@ -0,0 +1,12 @@ +pages::serve - Rust +
+ \ No newline at end of file diff --git a/pages/serve/routes/index.html b/pages/serve/routes/index.html new file mode 100644 index 0000000..b1eb2de --- /dev/null +++ b/pages/serve/routes/index.html @@ -0,0 +1,10 @@ +pages::serve::routes - Rust +
+ \ No newline at end of file diff --git a/pages/serve/routes/sidebar-items.js b/pages/serve/routes/sidebar-items.js new file mode 100644 index 0000000..2c69982 --- /dev/null +++ b/pages/serve/routes/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":[["Serve",""]]}; \ No newline at end of file diff --git a/pages/serve/routes/struct.Serve.html b/pages/serve/routes/struct.Serve.html new file mode 100644 index 0000000..bf9dc10 --- /dev/null +++ b/pages/serve/routes/struct.Serve.html @@ -0,0 +1,31 @@ +Serve in pages::serve::routes - Rust +
pub struct Serve {
+    pub catch_all: &'static str,
+}

Fields

catch_all: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/pages/serve/sidebar-items.js b/pages/serve/sidebar-items.js new file mode 100644 index 0000000..1a160b2 --- /dev/null +++ b/pages/serve/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"fn":[["find_page",""],["services",""]],"mod":[["routes",""]],"struct":[["index",""]]}; \ No newline at end of file diff --git a/pages/serve/struct.index.html b/pages/serve/struct.index.html new file mode 100644 index 0000000..1dd53a5 --- /dev/null +++ b/pages/serve/struct.index.html @@ -0,0 +1,29 @@ +index in pages::serve - Rust +
+

Struct pages::serve::index

source · []
pub struct index;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
+ \ No newline at end of file diff --git a/pages/settings/index.html b/pages/settings/index.html index d41292a..14b1c93 100644 --- a/pages/settings/index.html +++ b/pages/settings/index.html @@ -5,6 +5,6 @@

Module settings

Structs

\ No newline at end of file diff --git a/pages/settings/struct.Server.html b/pages/settings/struct.Server.html index 6c2b749..ca31be0 100644 --- a/pages/settings/struct.Server.html +++ b/pages/settings/struct.Server.html @@ -2,25 +2,26 @@

pub struct Server {
+    

Struct pages::settings::Server

source · []
pub struct Server {
     pub port: u32,
     pub ip: String,
     pub workers: Option<usize>,
-}

Fields

port: u32ip: Stringworkers: Option<usize>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+ pub domain: String, +}

Fields

port: u32ip: Stringworkers: Option<usize>domain: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -32,9 +33,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/settings/struct.Settings.html b/pages/settings/struct.Settings.html index 91943fa..b413eea 100644 --- a/pages/settings/struct.Settings.html +++ b/pages/settings/struct.Settings.html @@ -5,22 +5,22 @@

Settings

pub struct Settings {
+    

Struct pages::settings::Settings

source · []
pub struct Settings {
     pub server: Server,
     pub source_code: String,
     pub pages: Vec<Arc<Page>>,
-}

Fields

server: Serversource_code: Stringpages: Vec<Arc<Page>>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+}

Fields

server: Serversource_code: Stringpages: Vec<Arc<Page>>

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -32,9 +32,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/sidebar-items.js b/pages/sidebar-items.js index beb11d3..7f5410a 100644 --- a/pages/sidebar-items.js +++ b/pages/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"constant":[["CACHE_AGE",""],["GIT_COMMIT_HASH",""],["PKG_DESCRIPTION",""],["PKG_HOMEPAGE",""],["PKG_NAME",""],["V1_API_ROUTES",""],["VERSION",""]],"fn":[["get_json_err",""],["main",""],["services",""]],"mod":[["ctx",""],["deploy",""],["errors","represents all the ways a trait can fail using this crate"],["meta",""],["page",""],["routes",""],["settings",""]],"struct":[["Settings",""]],"type":[["AppCtx",""]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["CACHE_AGE",""],["GIT_COMMIT_HASH",""],["PKG_DESCRIPTION",""],["PKG_HOMEPAGE",""],["PKG_NAME",""],["V1_API_ROUTES",""],["VERSION",""]],"fn":[["get_json_err",""],["main",""],["services",""]],"mod":[["ctx",""],["deploy",""],["errors","represents all the ways a trait can fail using this crate"],["git",""],["meta",""],["page",""],["preview",""],["routes",""],["serve",""],["settings",""]],"struct":[["Settings",""]],"type":[["AppCtx",""]]}; \ No newline at end of file diff --git a/pages/struct.Settings.html b/pages/struct.Settings.html index be2f878..abc9586 100644 --- a/pages/struct.Settings.html +++ b/pages/struct.Settings.html @@ -5,22 +5,22 @@

Settings

-

Struct pages::Settings

source · []
pub struct Settings {
+    

Struct pages::Settings

source · []
pub struct Settings {
     pub server: Server,
     pub source_code: String,
     pub pages: Vec<Arc<Page>>,
-}

Fields

server: Serversource_code: Stringpages: Vec<Arc<Page>>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+}

Fields

server: Serversource_code: Stringpages: Vec<Arc<Page>>

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

@@ -32,9 +32,9 @@

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/pages/type.AppCtx.html b/pages/type.AppCtx.html index fe9f519..3051992 100644 --- a/pages/type.AppCtx.html +++ b/pages/type.AppCtx.html @@ -5,5 +5,5 @@

AppCtx

-

Type Definition pages::AppCtx

source · []
pub type AppCtx = WebData<Arc<Ctx>>;
+

Type Definition pages::AppCtx

source · []
pub type AppCtx = WebData<Arc<Ctx>>;
\ No newline at end of file diff --git a/search-index.js b/search-index.js index 95adc6d..c796524 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ -"pages":{"doc":"","t":[6,17,17,17,17,17,3,17,17,0,0,0,5,5,0,0,12,0,12,5,0,12,3,11,11,11,11,11,11,11,12,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,3,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,0,12,12,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,12,11,12,12,13,13,3,13,13,3,3,13,13,13,13,13,13,4,6,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,3,11,11,11,11,3,11,11,11,11,11,11,12,11,11,11,0,11,5,12,11,11,11,11,11,11,11,12,11,11,3,11,11,12,11,12,11,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,17,3,11,11,12,11,11,12,11,5,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12],"n":["AppCtx","CACHE_AGE","GIT_COMMIT_HASH","PKG_DESCRIPTION","PKG_HOMEPAGE","PKG_NAME","Settings","V1_API_ROUTES","VERSION","ctx","deploy","errors","get_json_err","main","meta","page","pages","routes","server","services","settings","source_code","Ctx","borrow","borrow_mut","clone","clone_into","from","into","new","settings","to_owned","try_from","try_into","type_id","vzip","DeployEvent","DeployInfo","DeploySecret","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branch","clone","clone","clone","clone_into","clone_into","clone_into","commit","deploy_info","deserialize","deserialize","deserialize","eq","eq","find_page","fmt","fmt","fmt","from","from","from","from","from","from_page","head","into","into","into","into","into","ne","ne","register","register","remote","routes","secret","secret","serialize","serialize","serialize","services","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","Deploy","borrow","borrow_mut","from","info","into","new","try_from","try_into","type_id","update","vzip","0","0","BadRequest","BranchNotFound","ConfigError","ConfigError","DuplicateRepositoryURL","ErrorToResponse","FSError","FSError","GitError","InternalServerError","NotAUrl","PathTaken","SecretTaken","ServiceError","ServiceResult","URLTooLong","UnauthorizedOperation","WebsiteNotFound","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","eq","eq","eq","error","error_response","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","into","ne","serialize","source","source","source","status_code","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","0","0","0","0","0","0","0","0","0","1","1","1","BuildDetails","borrow","borrow","borrow_mut","borrow_mut","build_details","clone","clone_into","deserialize","fmt","from","from","git_commit_hash","into","into","register","routes","serialize","services","source_code","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","version","vzip","vzip","Meta","borrow","borrow_mut","build_details","from","health","into","new","try_from","try_into","type_id","vzip","Page","_fetch_remote_branch","borrow","borrow_mut","branch","clone","clone_into","create_repo","deploy_branch","deserialize","eq","fast_forward","fetch","fmt","from","get_deploy_branch","get_deploy_commit","get_deploy_remote","into","merge","ne","normal_merge","open_repo","path","repo","secret","to_owned","try_from","try_into","type_id","update","vzip","ROUTES","Routes","borrow","borrow_mut","deploy","from","into","meta","new","services","try_from","try_into","type_id","vzip","Server","Settings","borrow","borrow","borrow_mut","borrow_mut","check_url","clone","clone","clone_into","clone_into","deserialize","deserialize","fmt","fmt","from","from","get_ip","init","into","into","ip","new","pages","port","server","source_code","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","workers"],"q":["pages","","","","","","","","","","","","","","","","","","","","","","pages::ctx","","","","","","","","","","","","","","pages::deploy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::deploy::routes","","","","","","","","","","","","pages::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::errors::ServiceError","","","","","","","","","","","","pages::meta","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::meta::routes","","","","","","","","","","","","pages::page","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::routes","","","","","","","","","","","","","","pages::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","represents all the ways a trait can fail using this crate","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","when the a Repository URL configured for a page is already …","","","","","All non-specific errors are grouped under this category","The value you entered for url is not url“","when the a path configured for a page is already taken","when the a Secret configured for a page is already taken","Error data structure grouping various error subtypes","Generic result data structure","URL too long, maximum length can’t be greater then 2048 …","","website not found","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","emmits build details of the bninary","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,3,4,5,6,7,3,4,5,6,7,3,3,5,6,3,5,6,6,0,3,5,6,5,6,0,3,5,6,3,4,5,6,7,6,6,3,4,5,6,7,5,6,4,7,6,0,3,5,3,5,6,0,3,5,6,3,4,5,6,7,3,4,5,6,7,3,4,5,6,7,0,3,4,5,6,7,0,8,8,8,8,8,8,8,8,8,8,8,9,10,11,11,0,11,11,0,0,11,11,11,11,11,11,0,0,11,11,11,9,10,11,12,9,10,11,12,12,9,10,11,12,11,9,9,10,10,11,11,12,9,10,11,11,11,11,11,12,9,10,11,12,11,12,9,10,11,11,9,10,11,9,10,11,12,9,10,11,12,9,10,11,12,9,10,11,12,13,14,15,16,17,18,19,20,21,13,14,15,0,22,23,22,23,0,22,22,22,22,22,23,22,22,23,23,0,22,0,22,22,22,23,22,23,22,23,22,22,23,0,24,24,24,24,24,24,24,24,24,24,24,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,0,26,26,26,26,26,26,26,0,26,26,26,26,0,0,27,1,27,1,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,1,27,1,1,27,1,27,1,27,1,27,1,27,1,27],"f":[null,null,null,null,null,null,null,null,null,null,null,null,[[],["jsonconfig",3]],[[],["result",6]],null,null,null,null,null,[[["serviceconfig",3]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["ctx",3]],["ctx",3]],[[["",0],["",0]]],[[]],[[]],[[["settings",3]],["arc",3,[["ctx",3]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["deployevent",3]],["deployevent",3]],[[["deploysecret",3]],["deploysecret",3]],[[["deployinfo",3]],["deployinfo",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,[[],["result",4,[["deployevent",3]]]],[[],["result",4,[["deploysecret",3]]]],[[],["result",4,[["deployinfo",3]]]],[[["deploysecret",3],["deploysecret",3]],["bool",0]],[[["deployinfo",3],["deployinfo",3]],["bool",0]],[[["str",0],["appctx",6]],["option",4,[["page",3]]]],[[["deployevent",3],["formatter",3]],["result",6]],[[["deploysecret",3],["formatter",3]],["result",6]],[[["deployinfo",3],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["page",3]],["result",4,[["deployinfo",3],["serviceerror",4]]]],null,[[]],[[]],[[]],[[]],[[]],[[["deploysecret",3],["deploysecret",3]],["bool",0]],[[["deployinfo",3],["deployinfo",3]],["bool",0]],[[["update",3],["appservice",3]]],[[["deploy_info",3],["appservice",3]]],null,null,null,null,[[["deployevent",3]],["result",4]],[[["deploysecret",3]],["result",4]],[[["deployinfo",3]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[],["deploy",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4,[["errortoresponse",3]]]],[[["fserror",3],["fserror",3]],["bool",0]],[[["configerror",3],["configerror",3]],["bool",0]],[[["serviceerror",4],["serviceerror",4]],["bool",0]],null,[[["serviceerror",4]],["httpresponse",3]],[[["fserror",3],["formatter",3]],["result",6]],[[["fserror",3],["formatter",3]],["result",6]],[[["configerror",3],["formatter",3]],["result",6]],[[["configerror",3],["formatter",3]],["result",6]],[[["serviceerror",4],["formatter",3]],["result",6]],[[["serviceerror",4],["formatter",3]],["result",6]],[[["errortoresponse",3],["formatter",3]],["result",6]],[[]],[[]],[[["parseerror",4]],["serviceerror",4]],[[]],[[["fserrorinner",3]],["serviceerror",4]],[[["giterror",3]],["serviceerror",4]],[[["configerrorinner",4]],["serviceerror",4]],[[]],[[]],[[]],[[]],[[]],[[["serviceerror",4],["serviceerror",4]],["bool",0]],[[["errortoresponse",3]],["result",4]],[[["fserror",3]],["option",4,[["error",8]]]],[[["configerror",3]],["option",4,[["error",8]]]],[[["serviceerror",4]],["option",4,[["error",8]]]],[[["serviceerror",4]],["statuscode",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["builddetails",3]],["builddetails",3]],[[["",0],["",0]]],[[],["result",4,[["builddetails",3]]]],[[["builddetails",3],["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[]],[[["build_details",3],["appservice",3]]],null,[[["builddetails",3]],["result",4]],[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],null,[[]],[[],["meta",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,[[["page",3],["repository",3],["str",0]],["result",4,[["serviceerror",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["page",3]],["page",3]],[[["",0],["",0]]],[[["page",3]],["result",4,[["repository",3],["serviceerror",4]]]],[[["page",3],["repository",3]],["result",4,[["serviceerror",4]]]],[[],["result",4,[["page",3]]]],[[["page",3],["page",3]],["bool",0]],[[["repository",3],["reference",3],["annotatedcommit",3]],["result",4,[["serviceerror",4]]]],[[["page",3],["repository",3]],["result",4,[["annotatedcommit",3],["serviceerror",4]]]],[[["page",3],["formatter",3]],["result",6]],[[]],[[["page",3],["repository",3]],["result",4,[["string",3],["serviceerror",4]]]],[[["repository",3]],["result",4,[["oid",3],["serviceerror",4]]]],[[["repository",3]],["result",4,[["remote",3],["serviceerror",4]]]],[[]],[[["page",3],["repository",3],["annotatedcommit",3]],["result",4,[["serviceerror",4]]]],[[["page",3],["page",3]],["bool",0]],[[["repository",3],["annotatedcommit",3],["annotatedcommit",3]],["result",4,[["error",3]]]],[[["page",3]],["result",4,[["repository",3],["serviceerror",4]]]],null,null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["page",3]],["result",4,[["serviceerror",4]]]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],null,[[],["routes",3]],[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["settings",3]]],[[["server",3]],["server",3]],[[["settings",3]],["settings",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[],["result",4,[["server",3]]]],[[],["result",4,[["settings",3]]]],[[["server",3],["formatter",3]],["result",6]],[[["settings",3],["formatter",3]],["result",6]],[[]],[[]],[[["server",3]],["string",3]],[[["settings",3]]],[[]],[[]],null,[[],["result",4,[["settings",3],["serviceerror",4]]]],null,null,null,null,[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null],"p":[[3,"Settings"],[3,"Ctx"],[3,"DeployEvent"],[3,"update"],[3,"DeploySecret"],[3,"DeployInfo"],[3,"deploy_info"],[3,"Deploy"],[3,"FSError"],[3,"ConfigError"],[4,"ServiceError"],[3,"ErrorToResponse"],[13,"PathTaken"],[13,"SecretTaken"],[13,"DuplicateRepositoryURL"],[13,"FSError"],[13,"UnauthorizedOperation"],[13,"BadRequest"],[13,"ConfigError"],[13,"GitError"],[13,"BranchNotFound"],[3,"BuildDetails"],[3,"build_details"],[3,"Meta"],[3,"Page"],[3,"Routes"],[3,"Server"]]}\ +"pages":{"doc":"","t":[6,17,17,17,17,17,3,17,17,0,0,0,5,0,5,0,0,12,0,0,0,12,5,0,12,3,11,11,11,11,11,11,11,12,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,3,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,0,12,12,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,12,11,12,12,13,13,3,13,13,3,3,13,13,13,13,13,13,4,6,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,13,4,13,13,13,13,3,4,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,3,11,11,11,11,3,11,11,11,11,11,11,12,11,11,11,0,11,5,12,11,11,11,11,11,11,11,12,11,11,3,11,11,12,11,12,11,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,3,12,11,11,12,11,11,11,11,11,12,11,11,11,11,17,3,11,11,12,11,11,12,11,12,5,11,11,11,11,11,11,5,11,3,11,11,0,5,11,11,11,11,3,11,11,12,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12],"n":["AppCtx","CACHE_AGE","GIT_COMMIT_HASH","PKG_DESCRIPTION","PKG_HOMEPAGE","PKG_NAME","Settings","V1_API_ROUTES","VERSION","ctx","deploy","errors","get_json_err","git","main","meta","page","pages","preview","routes","serve","server","services","settings","source_code","Ctx","borrow","borrow_mut","clone","clone_into","from","into","new","settings","to_owned","try_from","try_into","type_id","vzip","DeployEvent","DeployInfo","DeploySecret","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","branch","clone","clone","clone","clone_into","clone_into","clone_into","commit","deploy_info","deserialize","deserialize","deserialize","eq","eq","equivalent","equivalent","find_page","fmt","fmt","fmt","from","from","from","from","from","from_page","head","into","into","into","into","into","ne","ne","register","register","remote","routes","secret","secret","serialize","serialize","serialize","services","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","Deploy","borrow","borrow_mut","from","info","into","new","try_from","try_into","type_id","update","vzip","0","0","BadRequest","BranchNotFound","ConfigError","ConfigError","DuplicateRepositoryURL","ErrorToResponse","FSError","FSError","GitError","InternalServerError","NotAUrl","PathTaken","SecretTaken","ServiceError","ServiceResult","URLTooLong","UnauthorizedOperation","WebsiteNotFound","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","eq","eq","eq","error","error_response","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","into","into","into","into","ne","serialize","source","source","source","status_code","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","0","0","0","0","0","0","0","0","0","1","1","1","Binary","ContentType","Deprecated","Dir","Empty","Executable","FileInfo","GitFileMode","Regular","Submodule","Symlink","Text","Unsupported","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bytes","clone","clone","clone","clone_into","clone_into","clone_into","content","deserialize","eq","eq","eq","equivalent","equivalent","equivalent","filename","fmt","fmt","fmt","from","from","from","from","from","from","from_blob","from_primitive","into","into","into","mime","ne","ne","read_file","read_file_inner","read_preview_file","serialize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from_primitive","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","0","0","BuildDetails","borrow","borrow","borrow_mut","borrow_mut","build_details","clone","clone_into","deserialize","fmt","from","from","git_commit_hash","into","into","register","routes","serialize","services","source_code","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","version","vzip","vzip","Meta","borrow","borrow_mut","build_details","from","health","into","new","try_from","try_into","type_id","vzip","Page","_fetch_remote_branch","borrow","borrow_mut","branch","clone","clone_into","create_repo","deploy_branch","deserialize","domain","eq","equivalent","fast_forward","fetch","fmt","from","get_deploy_branch","get_deploy_commit","get_deploy_remote","into","merge","ne","normal_merge","open_repo","path","repo","secret","to_owned","try_from","try_into","type_id","update","vzip","Preview","base","borrow","borrow_mut","delimiter","extract","from","get_name","into","new","prefix","try_from","try_into","type_id","vzip","ROUTES","Routes","borrow","borrow_mut","deploy","from","into","meta","new","serve","services","try_from","try_into","type_id","vzip","borrow","borrow_mut","find_page","from","index","into","register","routes","services","try_from","try_into","type_id","vzip","Serve","borrow","borrow_mut","catch_all","from","into","new","try_from","try_into","type_id","vzip","Server","Settings","borrow","borrow","borrow_mut","borrow_mut","check_url","clone","clone","clone_into","clone_into","deserialize","deserialize","domain","fmt","fmt","from","from","get_ip","init","into","into","ip","new","pages","port","server","source_code","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","workers"],"q":["pages","","","","","","","","","","","","","","","","","","","","","","","","","pages::ctx","","","","","","","","","","","","","","pages::deploy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::deploy::routes","","","","","","","","","","","","pages::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::errors::ServiceError","","","","","","","","","","","","pages::git","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::git::ContentType","","pages::meta","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::meta::routes","","","","","","","","","","","","pages::page","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","pages::preview","","","","","","","","","","","","","","","pages::routes","","","","","","","","","","","","","","","pages::serve","","","","","","","","","","","","","pages::serve::routes","","","","","","","","","","","pages::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","represents all the ways a trait can fail using this crate","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","when the a Repository URL configured for a page is already …","","","","","All non-specific errors are grouped under this category","The value you entered for url is not url“","when the a path configured for a page is already taken","when the a Secret configured for a page is already taken","Error data structure grouping various error subtypes","Generic result data structure","URL too long, maximum length can’t be greater then 2048 …","","website not found","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Deprecated represent non-executable files with the group …","Dir represent a Directory.","Empty is used as the GitFileMode of tree elements when …","Executable represents executable files.","","A FileMode represents the kind of tree entries used by …","Regular represent non-executable files.","Submodule represents git submodules. This mode has no …","Symlink represents symbolic links to files.","","Unsupported file mode","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Please note that this method expects path to not contain …","","","","","","","","","","","","","","","","","","","","","","","","","","","emmits build details of the bninary","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,3,4,5,6,7,3,4,5,6,7,3,3,5,6,3,5,6,6,0,3,5,6,5,6,5,6,0,3,5,6,3,4,5,6,7,6,6,3,4,5,6,7,5,6,4,7,6,0,3,5,3,5,6,0,3,5,6,3,4,5,6,7,3,4,5,6,7,3,4,5,6,7,0,3,4,5,6,7,0,8,8,8,8,8,8,8,8,8,8,8,9,10,11,11,0,11,11,0,0,11,11,11,11,11,11,0,0,11,11,11,9,10,11,12,9,10,11,12,12,9,10,11,12,11,9,9,10,10,11,11,12,9,10,11,11,11,11,11,12,9,10,11,12,11,12,9,10,11,11,9,10,11,9,10,11,12,9,10,11,12,9,10,11,12,9,10,11,12,13,14,15,16,17,18,19,20,21,13,14,15,22,0,23,23,23,23,0,0,23,23,23,22,23,23,24,22,23,24,22,22,23,24,22,23,24,22,24,22,23,24,22,23,24,22,24,23,24,22,23,23,23,23,24,22,22,23,23,24,22,24,24,22,0,0,0,22,23,24,22,23,24,22,23,23,24,22,23,24,22,23,24,22,25,26,0,27,28,27,28,0,27,27,27,27,27,28,27,27,28,28,0,27,0,27,27,27,28,27,28,27,28,27,27,28,0,29,29,29,29,29,29,29,29,29,29,29,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,0,0,32,32,32,32,32,32,32,32,0,32,32,32,32,33,33,0,33,0,33,33,0,0,33,33,33,33,0,34,34,34,34,34,34,34,34,34,34,0,0,35,1,35,1,1,35,1,35,1,35,1,35,35,1,35,1,35,1,35,1,35,1,1,35,1,1,35,1,35,1,35,1,35,1,35,1,35],"f":[null,null,null,null,null,null,null,null,null,null,null,null,[[],["jsonconfig",3]],null,[[],["result",6]],null,null,null,null,null,null,null,[[["serviceconfig",3]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["ctx",3]],["ctx",3]],[[["",0],["",0]]],[[]],[[]],[[["settings",3]],["arc",3,[["ctx",3]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["deployevent",3]],["deployevent",3]],[[["deploysecret",3]],["deploysecret",3]],[[["deployinfo",3]],["deployinfo",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,[[],["result",4,[["deployevent",3]]]],[[],["result",4,[["deploysecret",3]]]],[[],["result",4,[["deployinfo",3]]]],[[["deploysecret",3],["deploysecret",3]],["bool",0]],[[["deployinfo",3],["deployinfo",3]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["str",0],["appctx",6]],["option",4,[["page",3]]]],[[["deployevent",3],["formatter",3]],["result",6]],[[["deploysecret",3],["formatter",3]],["result",6]],[[["deployinfo",3],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["page",3]],["result",4,[["deployinfo",3],["serviceerror",4]]]],null,[[]],[[]],[[]],[[]],[[]],[[["deploysecret",3],["deploysecret",3]],["bool",0]],[[["deployinfo",3],["deployinfo",3]],["bool",0]],[[["update",3],["appservice",3]]],[[["deploy_info",3],["appservice",3]]],null,null,null,null,[[["deployevent",3]],["result",4]],[[["deploysecret",3]],["result",4]],[[["deployinfo",3]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[],["deploy",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4,[["errortoresponse",3]]]],[[["fserror",3],["fserror",3]],["bool",0]],[[["configerror",3],["configerror",3]],["bool",0]],[[["serviceerror",4],["serviceerror",4]],["bool",0]],null,[[["serviceerror",4]],["httpresponse",3]],[[["fserror",3],["formatter",3]],["result",6]],[[["fserror",3],["formatter",3]],["result",6]],[[["configerror",3],["formatter",3]],["result",6]],[[["configerror",3],["formatter",3]],["result",6]],[[["serviceerror",4],["formatter",3]],["result",6]],[[["serviceerror",4],["formatter",3]],["result",6]],[[["errortoresponse",3],["formatter",3]],["result",6]],[[]],[[]],[[["configerrorinner",4]],["serviceerror",4]],[[["fserrorinner",3]],["serviceerror",4]],[[["giterror",3]],["serviceerror",4]],[[]],[[["parseerror",4]],["serviceerror",4]],[[]],[[]],[[]],[[]],[[]],[[["serviceerror",4],["serviceerror",4]],["bool",0]],[[["errortoresponse",3]],["result",4]],[[["fserror",3]],["option",4,[["error",8]]]],[[["configerror",3]],["option",4,[["error",8]]]],[[["serviceerror",4]],["option",4,[["error",8]]]],[[["serviceerror",4]],["statuscode",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["contenttype",4]],["vec",3,[["u8",0]]]],[[["gitfilemode",4]],["gitfilemode",4]],[[["fileinfo",3]],["fileinfo",3]],[[["contenttype",4]],["contenttype",4]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["result",4,[["contenttype",4]]]],[[["gitfilemode",4],["gitfilemode",4]],["bool",0]],[[["fileinfo",3],["fileinfo",3]],["bool",0]],[[["contenttype",4],["contenttype",4]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["",0],["",0]],["bool",0]],null,[[["gitfilemode",4],["formatter",3]],["result",6]],[[["fileinfo",3],["formatter",3]],["result",6]],[[["contenttype",4],["formatter",3]],["result",6]],[[["isize",0]],["gitfilemode",4]],[[["treeentry",3]],["gitfilemode",4]],[[["treeentry",3]],["gitfilemode",4]],[[]],[[]],[[]],[[["blob",3]],["contenttype",4]],[[],["gitfilemode",4]],[[]],[[]],[[]],null,[[["fileinfo",3],["fileinfo",3]],["bool",0]],[[["contenttype",4],["contenttype",4]],["bool",0]],[[["str",0],["str",0]],["result",4,[["fileinfo",3],["serviceerror",4]]]],[[["repository",3],["str",0],["tree",3]],["result",4,[["fileinfo",3],["serviceerror",4]]]],[[["str",0],["str",0],["str",0]],["result",4,[["fileinfo",3],["serviceerror",4]]]],[[["contenttype",4]],["result",4]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["gitfilemode",4],["tryfromprimitiveerror",3,[["gitfilemode",4]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["builddetails",3]],["builddetails",3]],[[["",0],["",0]]],[[],["result",4,[["builddetails",3]]]],[[["builddetails",3],["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[]],[[["build_details",3],["appservice",3]]],null,[[["builddetails",3]],["result",4]],[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],null,[[]],[[],["meta",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,[[["page",3],["repository",3],["str",0]],["result",4,[["serviceerror",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["page",3]],["page",3]],[[["",0],["",0]]],[[["page",3]],["result",4,[["repository",3],["serviceerror",4]]]],[[["page",3],["repository",3]],["result",4,[["serviceerror",4]]]],[[],["result",4,[["page",3]]]],null,[[["page",3],["page",3]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["repository",3],["reference",3],["annotatedcommit",3]],["result",4,[["serviceerror",4]]]],[[["page",3],["repository",3],["str",0]],["result",4,[["annotatedcommit",3],["serviceerror",4]]]],[[["page",3],["formatter",3]],["result",6]],[[]],[[["page",3],["repository",3]],["result",4,[["string",3],["serviceerror",4]]]],[[["repository",3]],["result",4,[["oid",3],["serviceerror",4]]]],[[["repository",3]],["result",4,[["remote",3],["serviceerror",4]]]],[[]],[[["page",3],["repository",3],["annotatedcommit",3],["str",0]],["result",4,[["serviceerror",4]]]],[[["page",3],["page",3]],["bool",0]],[[["repository",3],["annotatedcommit",3],["annotatedcommit",3]],["result",4,[["error",3]]]],[[["page",3]],["result",4,[["repository",3],["serviceerror",4]]]],null,null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["page",3],["str",0]],["result",4,[["serviceerror",4]]]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[["preview",3],["str",0]],["option",4,[["str",0]]]],[[]],[[["preview",3],["usize",0]],["string",3]],[[]],[[["appctx",6]],["preview",3]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],null,[[],["routes",3]],null,[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["str",0],["appctx",6]],["option",4,[["page",3]]]],[[]],null,[[]],[[["index",3],["appservice",3]]],null,[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[],["serve",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["settings",3]]],[[["server",3]],["server",3]],[[["settings",3]],["settings",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[],["result",4,[["server",3]]]],[[],["result",4,[["settings",3]]]],null,[[["server",3],["formatter",3]],["result",6]],[[["settings",3],["formatter",3]],["result",6]],[[]],[[]],[[["server",3]],["string",3]],[[["settings",3]]],[[]],[[]],null,[[],["result",4,[["settings",3],["serviceerror",4]]]],null,null,null,null,[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null],"p":[[3,"Settings"],[3,"Ctx"],[3,"DeployEvent"],[3,"update"],[3,"DeploySecret"],[3,"DeployInfo"],[3,"deploy_info"],[3,"Deploy"],[3,"FSError"],[3,"ConfigError"],[4,"ServiceError"],[3,"ErrorToResponse"],[13,"PathTaken"],[13,"SecretTaken"],[13,"DuplicateRepositoryURL"],[13,"FSError"],[13,"UnauthorizedOperation"],[13,"BadRequest"],[13,"ConfigError"],[13,"GitError"],[13,"BranchNotFound"],[4,"ContentType"],[4,"GitFileMode"],[3,"FileInfo"],[13,"Binary"],[13,"Text"],[3,"BuildDetails"],[3,"build_details"],[3,"Meta"],[3,"Page"],[3,"Preview"],[3,"Routes"],[3,"index"],[3,"Serve"],[3,"Server"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/source-files.js b/source-files.js index 04e0b8e..0d85645 100644 --- a/source-files.js +++ b/source-files.js @@ -1,3 +1,3 @@ var sourcesIndex = {}; -sourcesIndex["pages"] = {"name":"","files":["ctx.rs","deploy.rs","errors.rs","main.rs","meta.rs","page.rs","routes.rs","settings.rs"]}; +sourcesIndex["pages"] = {"name":"","files":["ctx.rs","deploy.rs","errors.rs","git.rs","main.rs","meta.rs","page.rs","preview.rs","routes.rs","serve.rs","settings.rs"]}; createSourceSidebar(); diff --git a/src/pages/deploy.rs.html b/src/pages/deploy.rs.html index b1085c9..9b21001 100644 --- a/src/pages/deploy.rs.html +++ b/src/pages/deploy.rs.html @@ -241,7 +241,7 @@ pub branch: String, } -fn find_page<'a>(secret: &str, ctx: &'a AppCtx) -> Option<&'a Page> { +pub fn find_page<'a>(secret: &str, ctx: &'a AppCtx) -> Option<&'a Page> { for page in ctx.settings.pages.iter() { if page.secret == secret { return Some(page); @@ -256,7 +256,7 @@ let (tx, rx) = oneshot::channel(); let page = page.clone(); web::block(move || { - tx.send(page.update()).unwrap(); + tx.send(page.update(&payload.branch)).unwrap(); }) .await .unwrap(); @@ -267,12 +267,12 @@ } } -#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)] pub struct DeploySecret { pub secret: String, } -#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)] pub struct DeployInfo { pub head: String, pub remote: String, diff --git a/src/pages/git.rs.html b/src/pages/git.rs.html new file mode 100644 index 0000000..a858355 --- /dev/null +++ b/src/pages/git.rs.html @@ -0,0 +1,593 @@ +git.rs - source +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+
/*
+ * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+use std::path::Path;
+
+use git2::*;
+use mime_guess::MimeGuess;
+use num_enum::FromPrimitive;
+use serde::{Deserialize, Serialize};
+
+use crate::errors::*;
+
+/// A FileMode represents the kind of tree entries used by git. It
+/// resembles regular file systems modes, although FileModes are
+/// considerably simpler (there are not so many), and there are some,
+/// like Submodule that has no file system equivalent.
+// Adapted from https://github.com/go-git/go-git/blob/master/plumbing/filemode/filemode.go(Apache-2.0 License)
+#[derive(Debug, PartialEq, Eq, Clone, FromPrimitive)]
+#[repr(isize)]
+pub enum GitFileMode {
+    /// Empty is used as the GitFileMode of tree elements when comparing
+    /// trees in the following situations:
+    ///
+    /// - the mode of tree elements before their creation.  
+    /// - the mode of tree elements after their deletion.  
+    /// - the mode of unmerged elements when checking the index.
+    ///
+    /// Empty has no file system equivalent.  As Empty is the zero value
+    /// of [GitFileMode]
+    Empty = 0,
+    /// Regular represent non-executable files.
+    Regular = 0o100644,
+    /// Dir represent a Directory.
+    Dir = 0o40000,
+    /// Deprecated represent non-executable files with the group writable bit set.  This mode was
+    /// supported by the first versions of git, but it has been deprecated nowadays.  This
+    /// library(github.com/go-git/go-git uses it, not realaravinth/gitpad at the moment) uses them
+    /// internally, so you can read old packfiles, but will treat them as Regulars when interfacing
+    /// with the outside world.  This is the standard git behaviour.
+    Deprecated = 0o100664,
+    /// Executable represents executable files.
+    Executable = 0o100755,
+    /// Symlink represents symbolic links to files.
+    Symlink = 0o120000,
+    /// Submodule represents git submodules.  This mode has no file system
+    /// equivalent.
+    Submodule = 0o160000,
+
+    /// Unsupported file mode
+    #[num_enum(default)]
+    Unsupported = -1,
+}
+
+impl From<&'_ TreeEntry<'_>> for GitFileMode {
+    fn from(t: &TreeEntry) -> Self {
+        GitFileMode::from(t.filemode() as isize)
+    }
+}
+
+impl From<TreeEntry<'_>> for GitFileMode {
+    fn from(t: TreeEntry) -> Self {
+        GitFileMode::from(t.filemode() as isize)
+    }
+}
+
+#[derive(Debug, Clone, Eq, PartialEq)]
+pub struct FileInfo {
+    pub filename: String,
+    pub content: ContentType,
+    pub mime: MimeGuess,
+}
+
+#[derive(Serialize, Eq, PartialEq, Clone, Debug, Deserialize)]
+#[serde(rename_all = "lowercase")]
+pub enum ContentType {
+    Binary(Vec<u8>),
+    Text(String),
+}
+
+impl ContentType {
+    pub fn bytes(self) -> Vec<u8> {
+        match self {
+            Self::Text(text) => text.into(),
+            Self::Binary(bin) => bin,
+        }
+    }
+
+    pub fn from_blob(blob: &git2::Blob) -> Self {
+        if blob.is_binary() {
+            Self::Binary(blob.content().to_vec())
+        } else {
+            Self::Text(String::from_utf8_lossy(blob.content()).to_string())
+        }
+    }
+}
+
+/// Please note that this method expects path to not contain any spaces
+/// Use [escape_spaces] before calling this method
+///
+/// For example, a read request for "foo bar.md" will fail even if that file is present
+/// in the repository. However, it will succeed if the output of [escape_spaces] is
+/// used in the request.
+pub fn read_file(repo_path: &str, path: &str) -> ServiceResult<FileInfo> {
+    let repo = git2::Repository::open(repo_path).unwrap();
+    let head = repo.head().unwrap();
+    let tree = head.peel_to_tree().unwrap();
+    read_file_inner(&repo, path, &tree)
+}
+
+pub fn read_preview_file(
+    repo_path: &str,
+    preview_name: &str,
+    path: &str,
+) -> ServiceResult<FileInfo> {
+    let repo = git2::Repository::open(repo_path).unwrap();
+    let branch = repo
+        .find_branch(preview_name, git2::BranchType::Local)
+        .unwrap();
+    //    let tree = head.peel_to_tree().unwrap();
+    let branch = branch.into_reference();
+    let tree = branch.peel_to_tree().unwrap();
+    read_file_inner(&repo, path, &tree)
+}
+
+fn read_file_inner(
+    repo: &git2::Repository,
+    path: &str,
+    tree: &git2::Tree,
+) -> ServiceResult<FileInfo> {
+    fn read_file(id: Oid, repo: &git2::Repository) -> ContentType {
+        let blob = repo.find_blob(id).unwrap();
+        ContentType::from_blob(&blob)
+    }
+
+    fn get_index_file(id: Oid, repo: &Repository) -> ContentType {
+        let tree = repo.find_tree(id).unwrap();
+        const INDEX_FILES: [&str; 7] = [
+            "index.html",
+            "index.md",
+            "INDEX.md",
+            "README.md",
+            "README",
+            "readme.txt",
+            "readme",
+        ];
+
+        let content = if let Some(index_file) = tree.iter().find(|x| {
+            if let Some(name) = x.name() {
+                INDEX_FILES.iter().any(|index_name| *index_name == name)
+            } else {
+                false
+            }
+        }) {
+            read_file(index_file.id(), repo)
+        } else {
+            unimplemented!("Index file not found");
+        };
+        content
+    }
+
+    let inner = |repo: &git2::Repository, tree: &git2::Tree| -> ServiceResult<FileInfo> {
+        //        let head = repo.head().unwrap();
+        //        let tree = head.peel_to_tree().unwrap();
+        let mut path = path;
+        if path == "/" {
+            let content = get_index_file(tree.id(), repo);
+            return Ok(FileInfo {
+                filename: "/".into(),
+                content,
+                mime: mime_guess::from_path("index.html"),
+            });
+        }
+        if path.starts_with('/') {
+            path = path.trim_start_matches('/');
+        }
+        let entry = tree.get_path(Path::new(path)).unwrap();
+        //FileType::Dir(items)
+
+        let mode: GitFileMode = entry.clone().into();
+        if let Some(name) = entry.name() {
+            let file = match mode {
+                GitFileMode::Dir => get_index_file(entry.id(), repo),
+                GitFileMode::Submodule => unimplemented!(),
+                GitFileMode::Empty => unimplemented!(),
+                GitFileMode::Deprecated => unimplemented!(),
+                GitFileMode::Unsupported => unimplemented!(),
+                GitFileMode::Symlink => unimplemented!(),
+                GitFileMode::Executable => read_file(entry.id(), repo),
+                GitFileMode::Regular => read_file(entry.id(), repo),
+            };
+            Ok(FileInfo {
+                filename: name.to_string(),
+                mime: mime_guess::from_path(path),
+                content: file,
+            })
+        } else {
+            unimplemented!();
+        }
+    };
+
+    //let repo = git2::Repository::open(repo_path).unwrap();
+    inner(repo, tree)
+}
+
+#[cfg(test)]
+pub mod tests {
+    use super::*;
+
+    const FILE_CONTENT: &str = "foobar";
+
+    fn write_file_util(path: &str) {
+        // TODO change updated in DB
+        let inner = |repo: &mut Repository| -> ServiceResult<()> {
+            let mut tree_builder = match repo.head() {
+                Err(_) => repo.treebuilder(None).unwrap(),
+
+                Ok(h) => repo.treebuilder(Some(&h.peel_to_tree().unwrap())).unwrap(),
+            };
+
+            let odb = repo.odb().unwrap();
+
+            let obj = odb
+                .write(ObjectType::Blob, FILE_CONTENT.as_bytes())
+                .unwrap();
+            tree_builder.insert("README.txt", obj, 0o100644).unwrap();
+            let tree_hash = tree_builder.write().unwrap();
+            let author = Signature::now("librepages", "admin@librepages.org").unwrap();
+            let committer = Signature::now("librepages", "admin@librepages.org").unwrap();
+
+            let commit_tree = repo.find_tree(tree_hash).unwrap();
+            let msg = "";
+            if let Err(e) = repo.head() {
+                if e.code() == ErrorCode::UnbornBranch && e.class() == ErrorClass::Reference {
+                    // fisrt commit ever; set parent commit(s) to empty array
+                    repo.commit(Some("HEAD"), &author, &committer, msg, &commit_tree, &[])
+                        .unwrap();
+                } else {
+                    panic!("{:?}", e);
+                }
+            } else {
+                let head_ref = repo.head().unwrap();
+                let head_commit = head_ref.peel_to_commit().unwrap();
+                repo.commit(
+                    Some("HEAD"),
+                    &author,
+                    &committer,
+                    msg,
+                    &commit_tree,
+                    &[&head_commit],
+                )
+                .unwrap();
+            };
+
+            Ok(())
+        };
+
+        if Repository::open(path).is_err() {
+            let _ = Repository::init(path);
+        }
+        let mut repo = Repository::open(path).unwrap();
+        let _ = inner(&mut repo);
+    }
+
+    #[test]
+    fn test_git_write_read_works() {
+        const PATH: &str = "/tmp/librepges/test_git_write_read_works";
+
+        write_file_util(PATH);
+        let resp = read_file(PATH, "README.txt").unwrap();
+        assert_eq!(resp.filename, "README.txt");
+        assert_eq!(resp.content.bytes(), FILE_CONTENT.as_bytes());
+        assert_eq!(resp.mime.first().unwrap(), "text/plain");
+
+        let resp = read_preview_file(PATH, "master", "README.txt").unwrap();
+        assert_eq!(resp.filename, "README.txt");
+        assert_eq!(resp.content.bytes(), FILE_CONTENT.as_bytes());
+        assert_eq!(resp.mime.first().unwrap(), "text/plain");
+    }
+}
+
+
+ \ No newline at end of file diff --git a/src/pages/main.rs.html b/src/pages/main.rs.html index b96ab71..251a233 100644 --- a/src/pages/main.rs.html +++ b/src/pages/main.rs.html @@ -107,6 +107,9 @@ 101 102 103 +104 +105 +106
/*
  * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
  *
@@ -135,9 +138,12 @@
 mod ctx;
 mod deploy;
 mod errors;
+mod git;
 mod meta;
 mod page;
+mod preview;
 mod routes;
+mod serve;
 mod settings;
 #[cfg(test)]
 mod tests;
diff --git a/src/pages/page.rs.html b/src/pages/page.rs.html
index d673d7a..3bb3cd5 100644
--- a/src/pages/page.rs.html
+++ b/src/pages/page.rs.html
@@ -288,6 +288,10 @@
 282
 283
 284
+285
+286
+287
+288
 
/*
  * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
  *
@@ -305,12 +309,9 @@
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
-use git2::{
-    build::CheckoutBuilder, Branch, BranchType, Direction, ObjectType, Oid, Remote, Repository,
-};
+use git2::{build::CheckoutBuilder, BranchType, Direction, Oid, Remote, Repository};
 #[cfg(not(test))]
 use log::info;
-use std::io::{self, Write};
 
 #[cfg(test)]
 use std::println as info;
@@ -319,12 +320,13 @@
 
 use crate::errors::*;
 
-#[derive(Debug, Clone, PartialEq, Deserialize)]
+#[derive(Debug, Clone, Eq, PartialEq, Deserialize)]
 pub struct Page {
     pub secret: String,
     pub repo: String,
     pub path: String,
     pub branch: String,
+    pub domain: String,
 }
 
 impl Page {
@@ -365,10 +367,14 @@
         Ok(())
     }
 
-    fn fetch<'a>(&self, repo: &'a git2::Repository) -> ServiceResult<git2::AnnotatedCommit<'a>> {
+    fn fetch<'a>(
+        &self,
+        repo: &'a git2::Repository,
+        branch: &str,
+    ) -> ServiceResult<git2::AnnotatedCommit<'a>> {
         let mut remote = repo.find_remote("origin")?;
         log::info!("Fetching {} for repo", remote.name().unwrap());
-        remote.fetch(&[&self.branch], None, None)?;
+        remote.fetch(&[branch], None, None)?;
         let fetch_head = repo.find_reference("FETCH_HEAD")?;
         Ok(repo.reference_to_annotated_commit(&fetch_head)?)
     }
@@ -377,6 +383,7 @@
         &self,
         repo: &'a Repository,
         fetch_commit: git2::AnnotatedCommit<'a>,
+        branch: &str,
     ) -> ServiceResult<()> {
         // 1. do a merge analysis
         let analysis = repo.merge_analysis(&[&fetch_commit])?;
@@ -386,7 +393,7 @@
             //log::debug!("Doing a fast forward");
             log::debug!("Doing a fast forward");
             // do a fast forward
-            let refname = format!("refs/heads/{}", &self.branch);
+            let refname = format!("refs/heads/{}", branch);
             match repo.find_reference(&refname) {
                 Ok(mut r) => {
                     log::debug!("fast forwarding");
@@ -401,7 +408,7 @@
                         &refname,
                         fetch_commit.id(),
                         true,
-                        &format!("Setting {} to {}", &self.branch, fetch_commit.id()),
+                        &format!("Setting {} to {}", branch, fetch_commit.id()),
                     )
                     .unwrap();
                     repo.set_head(&refname).unwrap();
@@ -420,7 +427,7 @@
             let head_commit = repo
                 .reference_to_annotated_commit(&repo.head().unwrap())
                 .unwrap();
-            Self::normal_merge(&repo, &head_commit, &fetch_commit).unwrap();
+            Self::normal_merge(repo, &head_commit, &fetch_commit).unwrap();
         } else {
             log::info!("Nothing to do...");
         }
@@ -501,10 +508,10 @@
         Ok(())
     }
 
-    pub fn update(&self) -> ServiceResult<()> {
+    pub fn update(&self, branch: &str) -> ServiceResult<()> {
         let repo = self.create_repo()?;
-        let fetch_commit = self.fetch(&repo)?;
-        self.merge(&repo, fetch_commit)?;
+        let fetch_commit = self.fetch(&repo, branch)?;
+        self.merge(&repo, fetch_commit, branch)?;
         Ok(())
     }
 
@@ -544,6 +551,7 @@
             repo: "https://github.com/mcaptcha/website".to_owned(),
             path: tmp_dir.to_str().unwrap().to_string(),
             branch: "gh-pages".to_string(),
+            domain: "mcaptcha.org".into(),
         };
 
         assert!(
@@ -562,7 +570,7 @@
         let gh_pages = page.get_deploy_branch(&repo).unwrap();
         assert_eq!(gh_pages, "gh-pages");
         page.branch = "master".to_string();
-        page.update().unwrap();
+        page.update(&page.branch).unwrap();
         let master = page.get_deploy_branch(&repo).unwrap();
         assert_eq!(master, "master");
 
diff --git a/src/pages/preview.rs.html b/src/pages/preview.rs.html
new file mode 100644
index 0000000..f8226a0
--- /dev/null
+++ b/src/pages/preview.rs.html
@@ -0,0 +1,241 @@
+preview.rs - source
+    
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+
/*
+ * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+use crate::AppCtx;
+
+pub struct Preview<'a> {
+    pub base: &'a str,
+    pub delimiter: &'static str,
+    pub prefix: &'static str,
+}
+
+impl<'a> Preview<'a> {
+    pub fn new(ctx: &'a AppCtx) -> Self {
+        Self {
+            base: &ctx.settings.server.domain,
+            delimiter: ".",
+            prefix: "deploy-preview-",
+        }
+    }
+    pub fn get_name(&self, preview_number: usize) -> String {
+        format!(
+            "{}{preview_number}{}{}",
+            self.prefix, self.delimiter, self.base
+        )
+    }
+
+    pub fn extract(&self, hostname: &'a str) -> Option<&'a str> {
+        if !hostname.contains(&self.delimiter)
+            || !hostname.contains(&self.prefix)
+            || !hostname.contains(&self.base)
+        {
+            return None;
+        }
+
+        let d = format!("{}{}", self.delimiter, self.base);
+
+        if hostname.split(&d).count() == 2 {
+            return hostname.split(&d).next();
+        }
+        None
+    }
+}
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn preview_extract_generate_works() {
+        const BASE_DOMAIN: &str = "librepages.site";
+        const PREVIEW_DELIMITER: &str = ".";
+        const PREVIEW_PREFIX: &str = "deploy-preview-";
+        const PREVIEW_NUMBER: usize = 1666;
+
+        let preview_hostname =
+            format!("{PREVIEW_PREFIX}{PREVIEW_NUMBER}{PREVIEW_DELIMITER}{BASE_DOMAIN}");
+
+        let bad_hostname = BASE_DOMAIN.to_string();
+
+        let extractor = Preview {
+            base: BASE_DOMAIN,
+            prefix: PREVIEW_PREFIX,
+            delimiter: PREVIEW_DELIMITER,
+        };
+
+        assert_eq!(extractor.get_name(PREVIEW_NUMBER), preview_hostname);
+
+        assert_eq!(extractor.extract(&bad_hostname), None);
+
+        assert_eq!(
+            extractor.extract(&format!(
+                "{PREVIEW_PREFIX}{PREVIEW_NUMBER}{PREVIEW_DELIMITER}no_base_domain"
+            )),
+            None
+        );
+
+        assert_eq!(
+            extractor.extract(&format!(
+                "{PREVIEW_PREFIX}{PREVIEW_NUMBER}no-delimiter{BASE_DOMAIN}"
+            )),
+            None
+        );
+
+        assert_eq!(
+            extractor.extract(&format!(
+                "{PREVIEW_PREFIX}{PREVIEW_NUMBER}no-delimiter{BASE_DOMAIN}"
+            )),
+            None
+        );
+
+        assert_eq!(
+            extractor.extract(&format!(
+                "noprefix{PREVIEW_NUMBER}{PREVIEW_DELIMITER}{BASE_DOMAIN}"
+            )),
+            None
+        );
+
+        assert_eq!(
+            extractor.extract(&preview_hostname),
+            Some(format!("{PREVIEW_PREFIX}{PREVIEW_NUMBER}").as_str())
+        );
+    }
+}
+
+
+ \ No newline at end of file diff --git a/src/pages/routes.rs.html b/src/pages/routes.rs.html index 27825d6..0cba503 100644 --- a/src/pages/routes.rs.html +++ b/src/pages/routes.rs.html @@ -45,6 +45,10 @@ 39 40 41 +42 +43 +44 +45
/*
  * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
  *
@@ -65,12 +69,14 @@
 
 use crate::deploy::routes::Deploy;
 use crate::meta::routes::Meta;
+use crate::serve::routes::Serve;
 
 pub const ROUTES: Routes = Routes::new();
 
 pub struct Routes {
     pub meta: Meta,
     pub deploy: Deploy,
+    pub serve: Serve,
 }
 
 impl Routes {
@@ -78,6 +84,7 @@
         Self {
             meta: Meta::new(),
             deploy: Deploy::new(),
+            serve: Serve::new(),
         }
     }
 }
@@ -85,6 +92,7 @@
 pub fn services(cfg: &mut web::ServiceConfig) {
     crate::meta::services(cfg);
     crate::deploy::services(cfg);
+    crate::serve::services(cfg);
 }
 
diff --git a/src/pages/serve.rs.html b/src/pages/serve.rs.html new file mode 100644 index 0000000..680edef --- /dev/null +++ b/src/pages/serve.rs.html @@ -0,0 +1,241 @@ +serve.rs - source +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+
/*
+ * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+use actix_web::{http::header::ContentType, web, HttpRequest, HttpResponse, Responder};
+
+use crate::errors::*;
+use crate::page::Page;
+use crate::AppCtx;
+
+pub mod routes {
+    pub struct Serve {
+        pub catch_all: &'static str,
+    }
+
+    impl Serve {
+        pub const fn new() -> Self {
+            Self {
+                catch_all: "/{path:.*}",
+            }
+        }
+    }
+}
+
+pub fn find_page<'a>(domain: &str, ctx: &'a AppCtx) -> Option<&'a Page> {
+    log::info!("looking for {domain}");
+    for page in ctx.settings.pages.iter() {
+        log::debug!("configured domains: {}", page.domain);
+        log::debug!("{}", page.domain.trim() == domain.trim());
+        if page.domain.trim() == domain.trim() {
+            log::debug!("found configured domains: {}", page.domain);
+            return Some(page);
+        }
+    }
+    None
+}
+
+#[my_codegen::get(path = "crate::V1_API_ROUTES.serve.catch_all")]
+async fn index(req: HttpRequest, ctx: AppCtx) -> ServiceResult<impl Responder> {
+    let c = req.connection_info();
+    let mut host = c.host();
+    if host.contains(':') {
+        host = host.split(':').next().unwrap();
+    }
+
+    if host == ctx.settings.server.domain || host == "localhost" {
+        return Ok(HttpResponse::Ok()
+            .content_type(ContentType::html())
+            .body("Welcome to Librepages!"));
+    }
+
+    if host.contains(&ctx.settings.server.domain) {
+        let extractor = crate::preview::Preview::new(&ctx);
+        if let Some(preview_branch) = extractor.extract(host) {
+            unimplemented!(
+                "map a local subdomain on settings.server.domain and use it to fetch page"
+            );
+            let res = match find_page(host, &ctx) {
+                Some(page) => {
+                    log::debug!("Page found");
+                    let content = crate::git::read_preview_file(
+                        &page.path,
+                        preview_branch,
+                        req.uri().path(),
+                    )?;
+                    let mime = if let Some(mime) = content.mime.first_raw() {
+                        mime
+                    } else {
+                        "text/html; charset=utf-8"
+                    };
+
+                    Ok(HttpResponse::Ok()
+                        //.content_type(ContentType::html())
+                        .content_type(mime)
+                        .body(content.content.bytes()))
+                }
+                None => Err(ServiceError::WebsiteNotFound),
+            };
+            return res;
+        }
+    }
+
+    match find_page(host, &ctx) {
+        Some(page) => {
+            log::debug!("Page found");
+            let content = crate::git::read_file(&page.path, req.uri().path())?;
+            let mime = if let Some(mime) = content.mime.first_raw() {
+                mime
+            } else {
+                "text/html; charset=utf-8"
+            };
+
+            Ok(HttpResponse::Ok()
+                //.content_type(ContentType::html())
+                .content_type(mime)
+                .body(content.content.bytes()))
+        }
+        None => Err(ServiceError::WebsiteNotFound),
+    }
+}
+
+pub fn services(cfg: &mut web::ServiceConfig) {
+    cfg.service(index);
+}
+
+
+ \ No newline at end of file diff --git a/src/pages/settings.rs.html b/src/pages/settings.rs.html index 7dfa5f7..cee24af 100644 --- a/src/pages/settings.rs.html +++ b/src/pages/settings.rs.html @@ -140,6 +140,7 @@ 134 135 136 +137
/*
  * Copyright (C) 2022  Aravinth Manivannan <realaravinth@batsense.net>
  *
@@ -178,6 +179,7 @@
     pub port: u32,
     pub ip: String,
     pub workers: Option<usize>,
+    pub domain: String,
 }
 
 impl Server {
@@ -265,7 +267,7 @@
                     error!("{}", ServiceError::PathTaken(page.clone(), page2.clone()));
                 }
             }
-            if let Err(e) = page.update() {
+            if let Err(e) = page.update(&page.branch) {
                 error!("{e}");
             }
         }