Commit graph

1390 commits

Author SHA1 Message Date
Bastien Orivel
f87e2442d4 Use a BTreeMap<String, String> instead of a Vec<Attribute> to store attributes
This way we don't need to reimplement PartialEq for Element. It's also
way easier to get an attribute by name as we don't need to iterate over
every attribute to see if it exists.

The only side effect is that now, in the Debug output, attributes are
automatically sorted by names instead of being sorted by insertion
order.

Fixes #4
2017-04-26 23:44:58 +02:00
lumi
2aef4aacb8 linewrap license 2017-04-26 01:26:29 +02:00
Emmanuel Gil Peyrot
5d51dff9e6 disco: Bump minidom dependency to 0.2.0, which fixes xml:lang parsing. 2017-04-26 00:22:40 +01:00
Emmanuel Gil Peyrot
a0eab6c1af ecaps2: Import Digest from digest. 2017-04-26 00:20:50 +01:00
lumi
8116c6e657 Well, that's embarrassing. Hope nobody will ever look at this commit. (if you see this, please don't look) 2017-04-26 01:15:56 +02:00
lumi
d54b002243 bump to 2.0.0, switch license to MIT 2017-04-26 01:14:16 +02:00
lumi
c6f9cc485f Merge branch 'Eijebong/minidom-rs-fix_namespaced_attributes'
# Conflicts:
#	src/tests.rs
2017-04-26 01:02:17 +02:00
lumi
64f212d11b Merge branch 'fix_equality' into 'master'
Fix the PartialEq implementation for Element

Closes #3

See merge request !3
2017-04-25 22:44:59 +00:00
Eijebong
0d0c4b76eb Fix the PartialEq implementation for Element
The order of attributes in an `Element` doesn't matter anymore.
`<elem a="b" c="d" />` and `<elem c="d" a="b" />` are now correctly
considered equal.

For that I had to derive `PartialOrd` and `Ord` for `Attribute`.
This allows us to sort cloned vectors of `Attribute` in the `PartialEq`
implementation and compare them instead of the struct `attributes`.

Fixes #3
2017-04-24 21:15:53 +02:00
Emmanuel Gil Peyrot
7fc40dbb19 ecaps2: Remove extraneous borrowing on base64::encode. 2017-04-24 20:03:05 +01:00
Emmanuel Gil Peyrot
049ef23595 jingle_ft: Implement IntoElements on Range, and change size to be an u64. 2017-04-24 19:52:41 +01:00
Emmanuel Gil Peyrot
5abf820fad jingle_ft: Implement serialise. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
db1a87e2ee jingle: Implement serialise. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
fa10ab4ebc jingle: Implement From for String on all special attributes. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
90f1792ebc jingle_ibb: Make the fields in Transport public. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
2b19a415d4 jingle_ibb: Implement serialise. 2017-04-24 19:25:00 +01:00
Emmanuel Gil Peyrot
c71b32ae24 ibb: Implement IntoAttributeValue for Stanza. 2017-04-24 19:25:00 +01:00
Maxime “pep” Buquet
1b4c0c4589 iq: Clippify 2017-04-24 19:20:35 +01:00
Eijebong
6f0e88b25b Correctly add namespaced attributes to elements
Instead of adding the local_name of an attribute, if a prefix exists,
add prefix:local_name to allow users to retrieve it via the namespaced
key name.

For example, with this XML:
```
<?xml version="1.0" encoding="utf-8"?>
<root xml:lang="en" >
</root>
```

`root.attr("xml:lang").unwrap()` will now correctly return "en".
`root.attr("lang")` will not retrieve "xml:lang" value anymore.

This is a breaking change.

Fixes #2
2017-04-24 18:19:50 +02:00
Maxime “pep” Buquet
c462d230f1 ping, iq: Implement ping::serialise_ping and link to Iq. 2017-04-23 21:17:26 +01:00
Maxime “pep” Buquet
b259ab9ef2 iq: Link disco parser to Iq. 2017-04-23 21:12:27 +01:00
Maxime “pep” Buquet
04af2f3d26 Implement Iq stanzas parsing 2017-04-23 20:38:13 +01:00
Emmanuel Gil Peyrot
944cb3964e presence: Add status as a possible payload. 2017-04-23 19:32:48 +01:00
Emmanuel Gil Peyrot
93343f3a00 Add a status parser. 2017-04-23 19:28:25 +01:00
Emmanuel Gil Peyrot
948b54d073 ecaps2: Implement blake2b. 2017-04-23 19:28:03 +01:00
Emmanuel Gil Peyrot
2c95fd6786 presence: Add ecaps2 as a possible payload. 2017-04-23 18:38:53 +01:00
Emmanuel Gil Peyrot
429abb996d ecaps2: Implement serialise. 2017-04-23 18:36:37 +01:00
Emmanuel Gil Peyrot
20949c2832 hashes: Implement serialise. 2017-04-23 18:36:12 +01:00
Emmanuel Gil Peyrot
78e8a06ec2 Add a presence parser. 2017-04-23 17:30:23 +01:00
Emmanuel Gil Peyrot
6a56918484 ns: Add the namespaces of hashes functions we implement. 2017-04-23 17:30:07 +01:00
Emmanuel Gil Peyrot
5e802b457e Cargo.toml: Update the jid crate to 0.2.0, which implements From<JID> on String. 2017-04-23 16:30:41 +01:00
lumi
90c4aec54f Bump the version number up to 0.2.0. 2017-04-23 17:23:09 +02:00
lumi
bbde01160a Add a note about not supporting RFC7622 yet. 2017-04-23 17:20:50 +02:00
lumi
1f592e101a Merge branch 'from-str' into 'master'
implement From<Jid> on String

See merge request !1
2017-04-23 15:09:48 +00:00
Emmanuel Gil Peyrot
c81509744f lib, message, jingle_ft: Remove unused imports. 2017-04-23 15:32:38 +01:00
Emmanuel Gil Peyrot
5e7ad720c3 Add a message parser, along with a dependency on jid. 2017-04-23 15:13:03 +01:00
Emmanuel Gil Peyrot
0d2fda8064 implement From<Jid> on String 2017-04-23 14:49:00 +01:00
Emmanuel Gil Peyrot
15634b6500 ping: Remove extraneous brackets. 2017-04-23 03:45:14 +01:00
Emmanuel Gil Peyrot
16a6ebd751 ibb: Simplify the FromStr using match. 2017-04-23 03:44:58 +01:00
Emmanuel Gil Peyrot
659eaee14e data_forms: Simplify the FromStr using match. 2017-04-23 03:42:50 +01:00
Emmanuel Gil Peyrot
90db24eed8 jingle: Simplify the FromStr using match. 2017-04-23 03:41:26 +01:00
Emmanuel Gil Peyrot
7e964b167a message_correct: Add a serialise function, and simplify the representation. 2017-04-23 03:23:13 +01:00
Emmanuel Gil Peyrot
4128c4b9ed chatstates: Add a serialise function. 2017-04-23 03:22:42 +01:00
Emmanuel Gil Peyrot
7002578bc0 body: Test the serialise function. 2017-04-23 03:22:25 +01:00
Emmanuel Gil Peyrot
cebccb363f eme: Add a serialise function. 2017-04-23 03:22:02 +01:00
Emmanuel Gil Peyrot
c6036194b1 delay: Add a serialise function. 2017-04-23 03:21:53 +01:00
Emmanuel Gil Peyrot
ab841dc375 receipts: Add a serialise function. 2017-04-23 03:21:21 +01:00
Emmanuel Gil Peyrot
54f4040251 attention: Simplify the payload type, and add a serialise function. 2017-04-23 03:20:52 +01:00
Emmanuel Gil Peyrot
ca6e65ad76 body: Add a serialise function. 2017-04-23 02:24:13 +01:00
Emmanuel Gil Peyrot
6d6ac8a380 body: Simplify the type of Body to an alias of String. 2017-04-22 20:49:17 +01:00