Simple Actix-web Service with shared state
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/target
|
||||
**/*.rs.bk
|
||||
14
.idea/ServiceTest.iml
generated
Normal file
14
.idea/ServiceTest.iml
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="CPP_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$/../service_test">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../service_test/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../service_test/examples" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../service_test/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/../service_test/benches" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/../service_test/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
4
.idea/encodings.xml
generated
Normal file
4
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/../service_test/.idea/ServiceTest.iml" filepath="$PROJECT_DIR$/../service_test/.idea/ServiceTest.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
589
.idea/workspace.xml
generated
Normal file
589
.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,589 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true">
|
||||
<generated />
|
||||
</component>
|
||||
<component name="CMakeSettings">
|
||||
<configurations>
|
||||
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
|
||||
</configurations>
|
||||
</component>
|
||||
<component name="CargoProjects">
|
||||
<cargoProject FILE="$PROJECT_DIR$/Cargo.toml" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="b0ee3aed-2536-4f3a-8c92-83bfe0a44195" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Cargo.lock" beforeDir="false" afterPath="$PROJECT_DIR$/Cargo.lock" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Cargo.toml" beforeDir="false" afterPath="$PROJECT_DIR$/Cargo.toml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/main.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/solr_api/admin.rs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/solr_api/context.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/solr_api.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/solr_api/select.rs" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/solr_api/service.rs" beforeDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ClangdSettings">
|
||||
<option name="formatViaClangd" value="false" />
|
||||
</component>
|
||||
<component name="DatabaseView">
|
||||
<option name="SHOW_INTERMEDIATE" value="true" />
|
||||
<option name="GROUP_DATA_SOURCES" value="true" />
|
||||
<option name="GROUP_SCHEMA" value="true" />
|
||||
<option name="GROUP_CONTENTS" value="false" />
|
||||
<option name="SORT_POSITIONED" value="false" />
|
||||
<option name="SHOW_EMPTY_GROUPS" value="false" />
|
||||
<option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
|
||||
<option name="HIDDEN_KINDS">
|
||||
<set />
|
||||
</option>
|
||||
<expand />
|
||||
<select />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<splitter split-orientation="vertical" split-proportion="0.2">
|
||||
<split-first>
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/Cargo.toml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="57">
|
||||
<caret line="8" selection-start-line="8" selection-end-line="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</split-first>
|
||||
<split-second>
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/main.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="676">
|
||||
<caret line="69" column="35" selection-start-line="69" selection-start-column="35" selection-end-line="69" selection-end-column="35" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</split-second>
|
||||
</splitter>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Rust File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>CoresAnswer</find>
|
||||
<find>cores::</find>
|
||||
<find>ResponseHeader</find>
|
||||
<find>Requ</find>
|
||||
<find>params</find>
|
||||
<find>type</find>
|
||||
<find>generate_context</find>
|
||||
<find>builtin</find>
|
||||
<find>BasicContext</find>
|
||||
<find>set_</find>
|
||||
<find>set_params</find>
|
||||
<find>generate_context|generate_context|generate_context|generate_context|generate_context|generate_context|generate_context|generate_context|generate_context|generate_context|generate_context|generate_context</find>
|
||||
<find>resolve</find>
|
||||
<find>context</find>
|
||||
<find>MultiValued</find>
|
||||
<find>get<</find>
|
||||
<find>cookie</find>
|
||||
<find>K: Hash</find>
|
||||
<find>HasQueryParams</find>
|
||||
<find>lock</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>cores::Response</replace>
|
||||
<replace>HeaderResponse</replace>
|
||||
<replace>MultiValuedRequestsContext</replace>
|
||||
<replace>Ctx</replace>
|
||||
<replace>K: Hash + Eq</replace>
|
||||
<replace>HasQueryParams<K, V></replace>
|
||||
</replaceStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/src/solr_rest_api.rs" />
|
||||
<option value="$PROJECT_DIR$/src/service.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/query.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/testing/mod.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/builtins/hyper_server.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/builtins/multi_valued_context.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/app.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/http.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/route_parser.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/builtins/server.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/server.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/request.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/builtins/send.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/context.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/builtins/basic_hyper_context.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/src/builtins/basic_context.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/examples/hello_world/context.rs" />
|
||||
<option value="$PROJECT_DIR$/../Thruster/examples/hyper_most_basic.rs" />
|
||||
<option value="$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/builtins/basic_context.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/admin.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/select.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/context.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/query_params.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/mod.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api/service.rs" />
|
||||
<option value="$PROJECT_DIR$/src/solr_api.rs" />
|
||||
<option value="$PROJECT_DIR$/Cargo.toml" />
|
||||
<option value="$PROJECT_DIR$/src/main.rs" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="MacroExpansionManager">
|
||||
<option name="directoryName" value="aMXmNNVU" />
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="1463" />
|
||||
<option name="y" value="23" />
|
||||
<option name="width" value="1733" />
|
||||
<option name="height" value="1282" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
<component name="ProjectView">
|
||||
<navigator proportions="" version="1">
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="service_test" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="service_test" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="service_test" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="service_test" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="org.rust.cargo.project.model.PROJECT_DISCOVERY" value="true" />
|
||||
<property name="org.rust.hideToolchainNotifications" value="true" />
|
||||
<property name="restartRequiresConfirmation" value="false" />
|
||||
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/src/solr_api" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
<list>
|
||||
<RuleState>
|
||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
<RuleState>
|
||||
<option name="name" value="StatusDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager" selected="Cargo Command.run-debug">
|
||||
<configuration name="build-debug" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||
<option name="channel" value="DEFAULT" />
|
||||
<option name="command" value="build" />
|
||||
<option name="allFeatures" value="false" />
|
||||
<option name="nocapture" value="false" />
|
||||
<option name="backtrace" value="SHORT" />
|
||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||
<envs />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="build" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||
<option name="channel" value="DEFAULT" />
|
||||
<option name="command" value="build --release" />
|
||||
<option name="allFeatures" value="false" />
|
||||
<option name="nocapture" value="false" />
|
||||
<option name="backtrace" value="SHORT" />
|
||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||
<envs />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="run-debug" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||
<option name="channel" value="DEFAULT" />
|
||||
<option name="command" value="run" />
|
||||
<option name="allFeatures" value="false" />
|
||||
<option name="nocapture" value="false" />
|
||||
<option name="backtrace" value="SHORT" />
|
||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||
<envs>
|
||||
<env name="RUST_LOG" value="service_test=trace" />
|
||||
</envs>
|
||||
<method v="2">
|
||||
<option name="RunConfigurationTask" enabled="true" run_configuration_name="build-debug" run_configuration_type="CargoCommandRunConfiguration" />
|
||||
</method>
|
||||
</configuration>
|
||||
<configuration name="run" type="CargoCommandRunConfiguration" factoryName="Cargo Command">
|
||||
<option name="channel" value="DEFAULT" />
|
||||
<option name="command" value="run --release" />
|
||||
<option name="allFeatures" value="false" />
|
||||
<option name="nocapture" value="false" />
|
||||
<option name="backtrace" value="SHORT" />
|
||||
<option name="workingDirectory" value="file://$PROJECT_DIR$" />
|
||||
<envs>
|
||||
<env name="RUST_LOG" value="service_test=info" />
|
||||
</envs>
|
||||
<method v="2">
|
||||
<option name="RunConfigurationTask" enabled="true" run_configuration_name="build" run_configuration_type="CargoCommandRunConfiguration" />
|
||||
</method>
|
||||
</configuration>
|
||||
<list>
|
||||
<item itemvalue="Cargo Command.build-debug" />
|
||||
<item itemvalue="Cargo Command.run-debug" />
|
||||
<item itemvalue="Cargo Command.build" />
|
||||
<item itemvalue="Cargo Command.run" />
|
||||
</list>
|
||||
</component>
|
||||
<component name="RustProjectSettings">
|
||||
<option name="runRustfmtOnSave" value="true" />
|
||||
<option name="toolchainHomeDirectory" value="$USER_HOME$/.cargo/bin" />
|
||||
<option name="version" value="2" />
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="1463" y="23" width="1733" height="1282" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.24285714" visible="true" weight="0.26729745" />
|
||||
<window_info id="Structure" order="1" sideWeight="0.75714284" side_tool="true" visible="true" weight="0.26729745" />
|
||||
<window_info id="Favorites" order="2" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" weight="0.32941177" />
|
||||
<window_info active="true" anchor="bottom" x="2387" y="116" width="972" height="1064" id="Run" order="2" sideWeight="0.49970433" type="WINDOWED" visible="true" weight="0.35210085" />
|
||||
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||
<window_info anchor="bottom" id="TODO" order="6" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="7" />
|
||||
<window_info anchor="bottom" id="Version Control" order="8" />
|
||||
<window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.5002957" side_tool="true" weight="0.39327732" />
|
||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||
<window_info anchor="right" id="Cargo" order="3" weight="0.32998225" />
|
||||
<window_info anchor="right" id="Database" order="4" weight="0.32998225" />
|
||||
</layout>
|
||||
<layout-to-restore>
|
||||
<window_info id="Favorites" order="0" side_tool="true" />
|
||||
<window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.25" />
|
||||
<window_info id="Structure" order="2" side_tool="true" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Version Control" order="0" />
|
||||
<window_info anchor="bottom" id="Event Log" order="1" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="2" />
|
||||
<window_info anchor="bottom" id="Message" order="3" />
|
||||
<window_info anchor="bottom" id="Find" order="4" />
|
||||
<window_info active="true" anchor="bottom" id="Run" order="5" visible="true" weight="0.33094555" />
|
||||
<window_info anchor="bottom" id="Debug" order="6" weight="0.4" />
|
||||
<window_info anchor="bottom" id="Cvs" order="7" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Inspection" order="8" weight="0.4" />
|
||||
<window_info anchor="bottom" id="TODO" order="9" />
|
||||
<window_info anchor="right" id="Cargo" order="0" />
|
||||
<window_info anchor="right" id="Database" order="1" />
|
||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="2" type="SLIDING" weight="0.4" />
|
||||
<window_info anchor="right" id="Ant Build" order="3" weight="0.25" />
|
||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="4" weight="0.25" />
|
||||
</layout-to-restore>
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/builtins/cookies.rs" />
|
||||
<entry file="file://$USER_HOME$/.rustup/toolchains/beta-x86_64-apple-darwin/lib/rustlib/src/rust/src/libstd/collections/hash/map.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="399">
|
||||
<caret line="1251" column="15" selection-start-line="1251" selection-start-column="11" selection-end-line="1251" selection-end-column="15" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/builtins/send.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/response.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/builtins/basic_hyper_context.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/examples/hyper_most_basic.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/app.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/testing/mod.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/examples/hello_world/context.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/builtins/query_params.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/builtins/basic_context.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/../Thruster/src/context.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/Cargo.lock">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/builtins/server.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1710">
|
||||
<caret line="114" column="9" lean-forward="true" selection-start-line="114" selection-start-column="9" selection-end-line="114" selection-end-column="9" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/route_tree/node.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-172">
|
||||
<caret line="77" column="16" lean-forward="true" selection-start-line="77" selection-start-column="16" selection-end-line="77" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/route_tree/mod.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="863">
|
||||
<caret line="64" column="34" selection-start-line="64" selection-start-column="34" selection-end-line="64" selection-end-column="34" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.rustup/toolchains/beta-x86_64-apple-darwin/lib/rustlib/src/rust/src/liballoc/str.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="387">
|
||||
<caret line="194" column="7" selection-start-line="194" selection-start-column="7" selection-end-line="194" selection-end-column="7" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/lib.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="405">
|
||||
<caret line="27" selection-start-line="27" selection-end-line="27" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api/select.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api/admin.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api/context.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api/query_params.rs" />
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/builtins/basic_context.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="91">
|
||||
<caret line="7" column="8" lean-forward="true" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="8" />
|
||||
<folding>
|
||||
<element signature="e#1578#1579#0" expanded="true" />
|
||||
<element signature="e#1606#1607#0" expanded="true" />
|
||||
<element signature="e#3798#3799#0" expanded="true" />
|
||||
<element signature="e#3830#3831#0" expanded="true" />
|
||||
<element signature="e#4017#4018#0" expanded="true" />
|
||||
<element signature="e#4045#4046#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/builtins/query_params.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="240">
|
||||
<caret line="16" column="36" lean-forward="true" selection-start-line="16" selection-start-column="36" selection-end-line="16" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/builtins/mod.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="45">
|
||||
<caret line="3" column="13" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api/mod.rs" />
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api/service.rs" />
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.7.1/src/lib.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="285">
|
||||
<caret line="19" column="56" selection-start-line="19" selection-start-column="42" selection-end-line="19" selection-end-column="56" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/examples/multicontext.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-103" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/examples/run_test/main.rs">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/examples/hello_world/context.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-237">
|
||||
<caret line="12" column="23" lean-forward="true" selection-start-line="12" selection-start-column="23" selection-end-line="12" selection-end-column="23" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/middleware.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="222">
|
||||
<caret line="26" column="78" selection-start-line="26" selection-start-column="78" selection-end-line="26" selection-end-column="78" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/stream/mod.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="312">
|
||||
<caret line="606" column="7" lean-forward="true" selection-start-line="606" selection-start-column="7" selection-end-line="606" selection-end-column="7" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/http-0.1.16/src/extensions.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-228">
|
||||
<caret line="36" column="11" selection-start-line="36" selection-start-column="11" selection-end-line="36" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/http-0.1.16/src/request.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="423">
|
||||
<caret line="178" column="24" selection-start-line="178" selection-start-column="24" selection-end-line="178" selection-end-column="24" />
|
||||
<folding>
|
||||
<element signature="e#11750#11751#0" expanded="true" />
|
||||
<element signature="e#11782#11783#0" expanded="true" />
|
||||
<element signature="e#12465#12466#0" expanded="true" />
|
||||
<element signature="e#12494#12495#0" expanded="true" />
|
||||
<element signature="e#13941#13942#0" expanded="true" />
|
||||
<element signature="e#13974#13975#0" expanded="true" />
|
||||
<element signature="e#14783#14784#0" expanded="true" />
|
||||
<element signature="e#14819#14820#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.12.25/src/body/body.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-350">
|
||||
<caret line="22" column="11" selection-start-line="22" selection-start-column="11" selection-end-line="22" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/hyper-0.12.25/src/server/mod.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="249">
|
||||
<caret line="80" column="11" selection-start-line="80" selection-start-column="11" selection-end-line="80" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/http-0.1.16/src/uri/path.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="80">
|
||||
<caret line="11" column="11" selection-start-line="11" selection-start-column="11" selection-end-line="11" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/examples/hello_world/main.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="225">
|
||||
<caret line="15" column="3" selection-start-line="14" selection-end-line="15" selection-end-column="3" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/examples/most_basic.rs">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/app.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="412">
|
||||
<caret line="119" column="15" selection-start-line="119" selection-start-column="15" selection-end-line="119" selection-end-column="15" />
|
||||
<folding>
|
||||
<element signature="e#3505#3506#0" expanded="true" />
|
||||
<element signature="e#3543#3544#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/thruster-0.6.3/src/server.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
<caret column="6" selection-start-column="6" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/http-0.1.16/src/uri/mod.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-652">
|
||||
<caret line="825" column="3" selection-start-line="825" selection-start-column="3" selection-end-line="825" selection-end-column="3" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/../service_test.bk/src/solr_api/query_params.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="100">
|
||||
<caret line="15" selection-start-line="9" selection-end-line="15" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/http-0.1.16/src/response.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="222">
|
||||
<caret line="177" column="11" selection-start-line="177" selection-start-column="11" selection-end-line="177" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/solr_api.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="769">
|
||||
<caret line="127" selection-start-line="126" selection-end-line="127" />
|
||||
<folding>
|
||||
<element signature="e#719#1112#0" />
|
||||
<element signature="e#1288#1826#0" />
|
||||
<element signature="e#3882#3883#0" expanded="true" />
|
||||
<element signature="e#3902#3903#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-0.7.9/src/system.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="307">
|
||||
<caret line="165" column="11" selection-start-line="165" selection-start-column="11" selection-end-line="165" selection-end-column="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$USER_HOME$/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src/liballoc/sync.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="250">
|
||||
<caret line="401" column="30" selection-start-line="401" selection-start-column="30" selection-end-line="401" selection-end-column="30" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/Cargo.toml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="57">
|
||||
<caret line="8" selection-start-line="8" selection-end-line="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/main.rs">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="676">
|
||||
<caret line="69" column="35" selection-start-line="69" selection-start-column="35" selection-end-line="69" selection-end-column="35" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
||||
1873
Cargo.lock
generated
Normal file
1873
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
17
Cargo.toml
Normal file
17
Cargo.toml
Normal file
@@ -0,0 +1,17 @@
|
||||
[package]
|
||||
name = "service_test"
|
||||
version = "0.1.0"
|
||||
authors = ["Lionel Sambuc <lionel.sambuc@epfl.ch>"]
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
# Framework Web
|
||||
futures = "0.1"
|
||||
#env_logger = "0.5"
|
||||
|
||||
actix = "0.7"
|
||||
actix-web = "0.7"
|
||||
|
||||
# Logging macros API
|
||||
log = { version = "0.4", features = ["max_level_trace", "release_max_level_info"] }
|
||||
pretty_env_logger = "0.3" # Logger implementation
|
||||
79
src/main.rs
Normal file
79
src/main.rs
Normal file
@@ -0,0 +1,79 @@
|
||||
// WebService framework
|
||||
#![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))]
|
||||
extern crate actix;
|
||||
extern crate actix_web;
|
||||
|
||||
// Logging & Console output.
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate pretty_env_logger;
|
||||
|
||||
use std::sync::Arc;
|
||||
use std::sync::RwLock;
|
||||
|
||||
mod solr_api {
|
||||
|
||||
use std::sync::Arc;
|
||||
use std::sync::RwLock;
|
||||
|
||||
use actix::SystemRunner;
|
||||
use actix_web::{middleware, server, App, HttpRequest, HttpResponse};
|
||||
|
||||
/// simple handle
|
||||
fn index(req: &HttpRequest<AppState>) -> HttpResponse {
|
||||
println!("{:?}", req);
|
||||
{
|
||||
// So that we release ASAP the exclusive lock.
|
||||
*(req.state().shared.write().unwrap()) += 1;
|
||||
}
|
||||
|
||||
HttpResponse::Ok().body(format!(
|
||||
"Num of requests: {}",
|
||||
req.state().shared.read().unwrap()
|
||||
))
|
||||
}
|
||||
|
||||
// Application shared state
|
||||
struct AppState {
|
||||
host: &'static str,
|
||||
port: u16,
|
||||
prefix: &'static str,
|
||||
shared: Arc<RwLock<i32>>,
|
||||
}
|
||||
|
||||
pub fn run(host: &'static str, port: u16, prefix: &'static str, state: Arc<RwLock<i32>>) -> () {
|
||||
info!("Initializing server...");
|
||||
|
||||
let sys = actix::System::new("spatial-search");
|
||||
|
||||
server::new(move || {
|
||||
App::with_state(AppState {
|
||||
host,
|
||||
port,
|
||||
prefix,
|
||||
shared: state.clone(),
|
||||
}) // <- create app with shared state
|
||||
// register simple handler, handle all methods
|
||||
.resource("/", |r| r.f(index))
|
||||
})
|
||||
.bind(format!("{}:{}", host, port))
|
||||
.unwrap()
|
||||
.start();
|
||||
|
||||
info!("Started http server: {:?}:{:?}", host, port);
|
||||
|
||||
let _ = sys.run();
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
std::env::set_var("RUST_LOG", "info");
|
||||
pretty_env_logger::init();
|
||||
|
||||
//TODO Retrieve from environment values, with fall back to defaults if unset.
|
||||
let hostname = "0.0.0.0";
|
||||
let base = "/spatial-search";
|
||||
let port = 8888;
|
||||
|
||||
solr_api::run(hostname, port, base, Arc::new(RwLock::new(0)));
|
||||
}
|
||||
Reference in New Issue
Block a user