Commit graph

100 commits

Author SHA1 Message Date
Marcel Müller
a64ffdfc56
Implement entry reading 2016-01-24 17:04:33 +01:00
Marcel Müller
97b7090824
Partially implement get_entry 2016-01-24 17:04:33 +01:00
Marcel Müller
50413101c4
Move entry, content and header into store 2016-01-24 17:04:32 +01:00
Marcel Müller
ba2e52788b
Add entry_creation 2016-01-24 17:04:32 +01:00
Marcel Müller
d949cddc65
Implement Store::retrieve 2016-01-24 17:04:32 +01:00
24ebe6736e Merge pull request #114 from matthiasbeyer/libimagstore/store-new-behaviour
Store::new(): Create path if nonexistent
2016-01-23 19:57:44 +01:00
796cd01343 Init the header with default values 2016-01-23 16:41:22 +01:00
38292ea8cb Dont pass the table to the header object, but generate it in ::new() 2016-01-23 16:40:00 +01:00
c48f3afcf4 Return error if create() fails 2016-01-23 11:57:40 +01:00
0c3bcc3f15 Add error kind: Create errors 2016-01-23 11:57:40 +01:00
80b0501d03 Introduce error if the store path exists but is a file 2016-01-23 11:57:40 +01:00
4f71563eb4 Store::new(): Create path if nonexistent 2016-01-23 11:57:40 +01:00
ffe56c4993 Add test with current version 2016-01-23 11:44:48 +01:00
e01f70aaad Use version
We use this not only for tests, but for the whole crate, as I assume
that we might need this crate later on in the non-test sources anyways.
2016-01-23 11:44:48 +01:00
a8ac1593e7 Add dep: version = 1.1.0 2016-01-23 11:44:48 +01:00
b0859c3e2f Use semver parser instead of regex 2016-01-23 11:44:47 +01:00
b486960720 Add version-string verification 2016-01-23 11:30:54 +01:00
dd11e32d82 Include regex 2016-01-23 11:30:54 +01:00
f4fbbb688d Add dep: regex 2016-01-23 11:30:54 +01:00
775d724a8c Add header test: Invalid version string 2016-01-23 11:30:54 +01:00
1187f7d9b3 Add header verification test 2016-01-23 11:30:53 +01:00
9884f78dae Move header verifying into helper function 2016-01-23 11:30:53 +01:00
2a4f3baf0b Add tests on header checkers 2016-01-23 11:30:53 +01:00
3e661439e8 Add sanity-check to header parsing 2016-01-23 11:30:53 +01:00
6be3011e85 Add: EntryHeader::parse()
Introduce Error + Error-kind for it, return Result<> from the ::parse()
function.
2016-01-23 11:28:20 +01:00
Marcel Müller
03c2ded21b
Move tempdir to dev-dependencies 2016-01-22 21:08:56 +01:00
Marcel Müller
4d28b57658
Remove remaining Cargo.lock files 2016-01-22 20:15:32 +01:00
Homu
2e77afbb3c Auto merge of #125 - TheNeikos:add-store_utils, r=matthiasbeyer
Add store utils

Do not merge yet!!
2016-01-22 10:31:02 -08:00
Homu
7511e220c8 Auto merge of #110 - neithernut:remove-residual-storeentry-methods, r=matthiasbeyer
Remove methods which are not needed anymore

These methods were intended for managing cached entries. Sice it was
decided not to serve caching in the store, these methods are no longer
needed.
2016-01-23 03:06:09 +09:00
Marcel Müller
40572d946d iQIcBAABCgAGBQJWomU5AAoJEN1O030MrHbiHZgQAKF7BnDgNMMMLS0B5EkN+rtJ
KDMJjn8iaHcww1H2GMAPxW24xTNdD4JbWOBBC/g76YUtO9XdpXgeiz7JvtfAtZuQ
 mltpTAUncCRFRuTHqvDnKKPWXv4s0NpTJthJOtse+FwhWF8hgCKkXef8lJeMDxLg
 7ipF/bIFnUAYq1BUc2NVguAVD23c+l05lgTEaUlzqNENozJWGqA8EwpE2ShEpjSH
 RmOD9FowY1pFqfIOOTdNcVSNAnIM2LnCEqS9BgeE1vtToeOo9yz9B+ffyqoJgjEp
 AD8Q0S4Kp0pMkduUpZbCEu3KCcSUcdRpojdsAbMKPiiMW/CDQQk3RUavO41zSci3
 gUOqnURaEbLBG4j3h47sA3PZOcsDrBLYL9G4aWk/6BG8kctrC4b3yzDU50InWOJQ
 2b1ppTCcQYnTUOLMvYkm1sFk/LhofH+Wk3GypGlIvw9xJISNHj73G9Qo3tF6OhWL
 /FaMlPPJYTbWsCaQcJTNKO7QcLyV72bJUDBaN9Z8+2ueQvqEwNvBOEcbJnce51+b
 1sOoklhEjpLpGUGvQn0l8Ig2ezV98CJrOwHPqQSTrFBcrCRB2sHLMmt0AzLjINEH
 SCRUj3ZUqp9TMU3X/zH1f1d8lglJhmZcPBomclbliyeXHiSvrBKGytfzeKG+aNIK
 6Ionaq9akACh5kbjctGZ
 =Y00k
 -----END PGP SIGNATURE-----

Add lints to make sure macro does not generate warnings
2016-01-22 18:22:01 +01:00
Marcel Müller
560e7106f8 iQIcBAABCgAGBQJWomPqAAoJEN1O030MrHbiYEEQALGQfJYEfbCgvVejgiwOKMjv
m7U7nEQbMMVYHVbeCdUs2PXHwCFr8slSccyWoF0QNHX4/Tx5t+XJ9JnRsyIhQyzi
 UWRQo3mHDErn2lP+M+4kfDWPpOdJicJKAxyiLgGo/Aw5CblX9MAaKfE85rZh7atx
 JM567tN+O/Cflt676Mva3xnzpisHFKVJKG58k+QzmZOgNtROWg3PTyAb+/T2c6Vd
 Ty+zW4zt7LwKjGlK9YEDqEwpg3STKUPT9T5S6ZFkPHBbjPVtM5yXK1oTWOpE7zn+
 iXSjCqfC2Ok+MT9YB1loexY2f6bzwqZkmWHl3M+4f1fJfhBQR0Zdz4a/hyp2YLcv
 hVW/X/AeVCdoMOBZ9PCaFjY6aXFycB6HlDDU1jldCN5U08BfY+h6hDtW5xaPLj2s
 WWeyIZgnqLJsGk7VK+/KAdDZMAZVwoC69AVXQS+IjejetQWHY5OFhCBfRVZ02/aX
 jwdZSfw5oNCGsvrzknkcECL9bPQAGRptoLbGuuLNPaACNd8ebWTmw4gwxFYwwAGY
 Dq6NDA33S3uRDvK24MpUA8g5OxsU8kzblhP6iYqGTg0dLnGFRzioKDg3v7NFKN9/
 Yy7g1uQCZIVbrVnZF6w68jfuX6IoIHWl6eg6De2AmMNClYGZflDzbSoYCZkiz1d4
 AR6HHXLT84nAJ2tCgK0S
 =6TMR
 -----END PGP SIGNATURE-----

Add macro to create ModuleEntryPath
2016-01-22 18:16:26 +01:00
Marcel Müller
a85d658f33 iQIcBAABCgAGBQJWol+6AAoJEN1O030MrHbiP6YP/0gq5zudvb0JtDAxbwYUuY0H
kl+2eDAclmvugaOyzCi4LC1CHPakJVauEwmWqJ50IrJt6uBsf4tCbWCtMnPXnnVe
 K3yYGbzHwObTALk6TxfnQltdIUcghVuFwC93gE+lsNi/JrL3pzxXyU7t/bs4canP
 QluV6o3HW4Y4vXn/d0Lnjkb7gpNxDaeMShm1xvb3OcKKUtO4ni4xOUsVi5zlI+kk
 UYuh+V/FJFA0tmKbvJqVan20/Xt462vyGCL36JmAOEFmOLZ+PIL6bpTzoupJYEtc
 9yWZD7VQLU6SurFMNhEoALoS3/Vn+F/kBvAzjO8hUs9at/ocs/1WzG59RiV/TBKF
 mJbRyiODdASqBRWUW9S4vULX3tVsNrUFtit3quxh4YDVmtGcT/YEF/kmE2s9QFxH
 3yECBdo6FZXWtIWeGiLaLxr5L4eqNIsfhDTfa0Dtn/0w8SIZlUCDBanEyFpaCBtI
 2wjwea8ywk9ydkOCCZv5TCnYJewYuMvFmQrhOZTMw5ZAo1urT7wa7AhTVXbZ9B0E
 7wheTkQ5fNx2SmrB06Tdzt8ZnizjOhTEmzLYlB3T7E2hFfoohGxPqT1iAh/RGCvL
 PdQCA0QCKXenjiaIbA4zBwrvOIpsgs/keJ1HnK9EVmwddXdkLqdqzAlpb/BwATVL
 TH3JxmTYRZ1+eJkN1jpj
 =Fk4L
 -----END PGP SIGNATURE-----

Add semver crate to Cargo.toml
2016-01-22 17:58:32 +01:00
af411fbdb0 Add Entry mutable getters 2016-01-22 14:25:03 +01:00
c21bed3af9 Add Entry getters 2016-01-22 14:24:20 +01:00
cfa8c29eaf error.rs: Add documentation 2016-01-21 21:31:48 +01:00
434a766536 lazyfile.rs: Add documentation 2016-01-21 21:30:41 +01:00
64ee182d63 entry.rs: Add documentation 2016-01-21 21:28:29 +01:00
67ae39ab5b header.rs: Add documentation 2016-01-21 21:28:18 +01:00
f921a73fb0 content.rs: Add documentation 2016-01-21 21:28:08 +01:00
Marcel Müller
a75ba8ea72 iQIcBAABCgAGBQJWnTB3AAoJEN1O030MrHbi9V4P/3tis8CVncUcVFC5NohTBbRk
tFrubrLNw+ketVYV8JsHPtygtvZ8jfMy3DdSTHqxOoC0jPEERSMwkZ98AVySS70w
 D2A9Wjxt6s2heg23MMpEtP/axBMoSshj30Hu/S70qI9M0HskloJ1he02urhs9LqA
 kCUnS9oiiQ2qxtOuoGk4NLwOa/fyPFdznYjBjFOnIjf6Qmc0xaMTvxSei1H18GcW
 +Ug9eU3XERV4mehehXSqzrAKa3zTsF3dur6Y+e6rgYbaQpv7vBNlNr733R1ao0tY
 A8UUb/90hIUKpfgLNQYbAXI37AvrKj5njk/BGm5ca/gRUwWkL1nKkkolvJvsjQgO
 hyifT3JmHmtOa4A4mgDF1DLOAZVkOXCKPbA9HIaI0wpZMHEBjGD7UTf52QtLD4Cv
 0rwgGqAR1qzUw4ijzwYm+s/YNbm9Ecn22cmRIvk5ZGGbWu+q2Y+9+b/sCbgr2EQP
 lWkxT8qF/sNw9MVhwrnu2FpimL0IaZ9iKSPGSzbsoaBm4M86STGPYXrIaycq6i3u
 17Dqvv3U26R08AEw/5thZFwazOMj305M0CjqkyvNGCosKHG+FrHIgK4hgNmB5vGe
 T11RkfSRq15s+TRgcvjIYrPmtrcXB11+WBzI2K/nSQOnjCENYx2oBKRSBILwhuaC
 TQedJRXhwAp32VO3Hojb
 =TpUb
 -----END PGP SIGNATURE-----

Seek to beginning of file before reading
2016-01-18 19:35:35 +01:00
927205dfcc Fix test: lazy_file_with_file 2016-01-18 18:30:55 +01:00
Marcel Müller
9d0afade98 iQIcBAABCgAGBQJWnR7yAAoJEN1O030MrHbien4P/2ixFj7HRpWLZDARUTOy1f0I
E/WY5FhCD5Nx2EAu1urJhZORwAeOyJurQVjoSC8FfcayK87Co3Hw9bt9CDB5uIxt
 aQlkA5YkamSlL1FQlOmcEqBUBISGmRtXB89zWeDWscRTrHb9pAPFZmrKpnklfa5r
 Lye3dAT7yrpTsPp2HxY2ojw5qHRb5Ojp57SKvAX27bYyEjk8PIREC2ZIgk08Mw1h
 kmx2QsIvWKGGTkOoBj/Lw+rL1aW+b6E6VdVngeZ04l9qU+3JOtHUkFyfvaiJvf7V
 0HDiQIEHDjLCeZwvjVgzxBxQE/pANpMtno6y3LF99FdgfQtQy6hswaUpMilk2N9X
 Mq+kZ1bWaz6Q2Oo3GSFhWeAOgM/en1MHuxRQhjUMZVxp1tsqLo3piq5Ywi1kg/yR
 Dsxvw/AmQbkV8S77RhbIN+aRbSg6kBs6QmaAy4fVB4f+fnp6WKHIZ4yselZMtwUI
 AHVsXCvlQwmDm4BG4khJfKEd36x9hJAWnpKkNCprGhedN8QRgV7GmHZ4b3LBtODB
 UI338SX6ZyZmnYQV3mNgJ5mvzffnjZF0xup5rMLOg3SyNjKoirjYdlbb2SH7tNLp
 +EwBIJGCaFbiVFRoh1iHTvxtbKj218NPjP6ZU+UowBM5mlysRpVtCAYVGPprl+u7
 aOtLp8WQDjnf8ysBL5pk
 =ZLhc
 -----END PGP SIGNATURE-----

Use tempdir in tests
2016-01-18 18:20:50 +01:00
Marcel Müller
6a3429d759 iQIcBAABCgAGBQJWnRoNAAoJEN1O030MrHbiYzMQALA2R/WccyxqsOs0A1i/wUdp
saz250bgtXUJ0DKqGRM25+P0idJuIW2/nuOqqAYQ3uWNDxj4oLR21vkGstCO9xvk
 FZ/UARQ3MK8KF0OFRRb+ESTOixtNn2oEaiJuxwdRDG7I3z7YTiijwYM9uTGhFNqD
 Hkkm+X5Hsh9GvxzSN+yEX2Vrvgv9WIerfhyOWBNgK6VKmneX7CNFl3/2E5U152+O
 Nsfd6eeJ5JnMlpmzCiIJyfsT1Bf8ITr8MZpvQJ8dW5Ozgbg5N931NOLoVSMGkNPD
 D1I9XtQX5C8KJmvoBecMZOIurghGSJ4VTM9mOEd6X+AW3fhRoeX6GbNFptQr/UAk
 TfX0nBZxeHvwOLQR+kMNQZ5dmfnmC0VEZFtlxLu22fngOWz80wxPRc3W9/4iWnQg
 OfjfnZkP0NUCPDXbsTnB42MyZA3Ff4t52Lq0qGSVHGTHcwm8WQA3je/oztJ18w9S
 6UysUMbICMo2/OzVKK9OF3i50uLz0JEE9MVLtjmMQ3LrjN5I7qoZ0e5xDTQS6rnf
 Cwt8JsjJbPAk9ynsvjKgom3Q5rPGq3zyrTtViQ025jww5lie0l7dVlenTFvCa95s
 PyKZ64dHGuD0iPEeodVZgSW7KC7F0UNeBSO1fawZ8eYYVlWMk4K2EgcCQPX3ReRB
 ZXebnEZoWqiL4XmZzHb4
 =wpl6
 -----END PGP SIGNATURE-----

Add tempdir to Cargo.toml
2016-01-18 17:59:57 +01:00
Marcel Müller
5d3cb4a3af iQIcBAABCgAGBQJWnRh+AAoJEN1O030MrHbiUHQQAJ3bhzz4O7qytq9X4WUkW80W
A+Dk5Oyzm4QajdMDw1lW+FJT1LHAA4q14nTKTZlCZKT0doxZYbQENrBjzhAQaKin
 kIZSrCmKulziAVLIuXGq9wmaz6CJ4kHb+GWlC82U575yIb8XBpqpIjUAwboP9xZk
 xHaGT8l9+KPMUCXd9zU3KCJHg3ZO3ckOJm0gmG4JvmvaUX+r38cgO3zwRPpdVLVW
 cnQ/aPLkaeLfP2auSdRDeVOkhcl5uWgdQcvnqTkPUb+gQUXV01WpqzoxmVhEPVv1
 kLWIGRzFEmxrNadAqJTC9AE5DBnoRM7/cge2QZ9vVtJsdcwRYwjw4qSunvPAusdb
 lXmA0+1aJPpkGMHVywNBHYq5fR89etrQBZ3Roz9LAp2eKNAsXyJYg0CT6PgzmEhp
 cPVOCHizXWwCLFRZI0zn9WSWS9EFm0H2FJDGfSDAoNPyO2RAmtu+8tXU+vgwvox+
 B3j5jEQmF8c8A+SE0Qeh7IloQWMXCfnJrgeo7sbhYq8w0WPTLhiX7BEtu3K3Nvi6
 bG00BHihvOD2wu1DiTIzPTJkP3rMK4VD6sZmXSUFjEVtzn1rN9l2hYjkyMQj/xlG
 RATEMP4TvB/eVktfZ+nFr5XtGGFAY1hsVBd5FnV874J6OHGD6zqt21lgxGCF0MUw
 cwqyKk6K+l6Ljf8UAdvx
 =Ni+I
 -----END PGP SIGNATURE-----

Add file creation
2016-01-18 17:53:18 +01:00
Homu
bec97f8fc2 Auto merge of #111 - neithernut:impl-store-delete, r=matthiasbeyer
Implement `Store::delete()`

Targets #106.
2016-01-17 10:12:30 -08:00
Julian Ganz
82ed978e90 Styling: remove some whitespace and a scope 2016-01-17 19:08:15 +01:00
Julian Ganz
e6c05e4f5b Implement Store::delete() 2016-01-17 18:50:03 +01:00
Julian Ganz
bcebe86546 Add new error type for low-level file system errors 2016-01-17 18:45:26 +01:00
Julian Ganz
78701c7332 Add error type for communicating that an entry is locked
We need this error type to let the user know when she is trying to
remove an item which is currently edited.
2016-01-17 18:45:26 +01:00
Homu
c4711d2508 Auto merge of #109 - matthiasbeyer:libimagstore/remove-unused-imports, r=matthiasbeyer
Remove unused imports

@TheNeikos
2016-01-18 00:29:49 +09:00